home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Direkt Starter Games
/
3D GAMES.ISO
/
aricity
/
viren
/
scanner
/
viba
/
virusdef.doc
< prev
next >
Wrap
Text File
|
1997-03-07
|
125KB
|
2,689 lines
Virus Definition
Die komplette Beschreibung aller Virenarten und
Virengattungen unter dem Betriebssystem DOS
Copyright (c) 1990-96 by ROSE, Ralph Roth,
Finkenweg 24, D 78658 Zimmern o. R.
ALL RIGHTS RESERVED!
ALLE RECHTE VORBEHALTEN!
─══[ 1 ÜBERSICHT ]═════════════════════════════════════════════─
Seit dem ersten Auftreten von Computerviren unter MS-DOS im
Jahre 1986 hat sich die Anzahl der existierenden Computerviren
explosionsartig vermehrt. Zur Zeit existieren ca. 6000 verschie-
dene DOS-Viren. Die ersten OS/2- und Windows-Viren sind vor kur-
zem gefunden worden. Bei diesen ebenfalls relativ offenen
Betriebssystemen ist der gleiche Trend wie unter DOS zu erwar-
ten, ein Ende ist generell noch nicht abzusehen! Unter UNIX gibt
es bis heute fast keine Viren, was darauf hindeutet, daß ein
Betriebssystem mit Sicherheitsmerkmalen virensicherer ist! Der
folgende Beitrag versucht das Phänomen "Computervirus" und die
damit verbundene Mystik etwas aufzuklären. Das Thema
Computerviren ist nicht ganz einfach zu verstehen, deshalb ist
für das Verständnis des folgenden Artikel ein "gesundes" Maß an
EDV Grundwissen erforderlich!
1.1 Das Handbuch
Dieses Handbuch wurde mit WINWORD 6.0 erstellt und einem vom
Programmautor entwickelten Hilfsprogramm nach ASCII portiert.
Sie können deshalb dieses Handbuch auf JEDEM Drucker, der minde-
stens 64 Zeilen pro Blatt und einen Seitenvorschub unterstützt,
ausdrucken (auch auf Laserdruckern).
Befehl: COPY VIRUSDEF.DOC PRN
ACHTUNG: Das Originaldokument enthält Grafiken, Tabellen und
Fußnoten, die natürlich nicht übernommen werden konnten!
1.2 Urheberrecht
Der Autor - Ralph Roth - besitzt alle Rechte an dieser
Dokumentationen. Eine Vervielfältigung oder sonstige
anderweitige Vervielfältigung - auch auszugsweise- ist ohne
schriftliche Genehmigung des Autors untersagt und stellt eine
Urheberrechtsverletzung dar!
Beschreibung aller Virenarten und Virengattungen Seite: 1
Eine Ausnahme stellt die Verbreitung im Zusammenhang mit vom
Autor entwickelter Software dar: Ist der SHAREWARE Version eines
vom Autor entwickelten Programmes diese Datei beigefügt, darf
diese Datei nur zusammen mit dem Sharewareprogramm weitergeben
werden. Eine separate Trennung dieser Datei ist jedoch
unzulässig!
Alle Warenzeichen werden anerkannt.
Beschreibung aller Virenarten und Virengattungen Seite: 2
1.3 Inhaltsverzeichnis
1 Übersicht...............................................1
1.1 Das Handbuch........................................1
1.2 Urheberrecht........................................1
1.3 Inhaltsverzeichnis..................................3
1.4 Einige Definitionen.................................5
1.4.1 Softwareanomalien............................5
1.4.2 Der Computervirus............................5
1.4.3 Der Wirt.....................................6
1.4.4 Die Infektion................................6
1.4.5 Würmer (worms)...............................6
1.4.6 Kettenbriefe.................................7
1.4.7 Trojanisches Pferd...........................7
1.4.8 Speicherresident.............................7
1.4.9 Tarnkappenviren..............................7
1.4.10 Verschlüsselte Viren........................7
1.4.11 Selbst-upgradend............................7
1.5 Erste Attacken......................................8
1.5.1 Die ersten Netzwerkwürmer....................8
1.5.2 Die ersten Viren.............................8
1.5.3 Erste wissenschaftliche Untersuchungen.......8
1.6 Chronologischer Rückblick...........................9
2 Klassifizierung/Typologie..............................11
2.1 Einleitung.........................................11
2.1.1 Aufenthaltsbereiche von Viren...............11
2.2 Bootviren..........................................12
2.2.1 MBR-Viren (Partitionsviren).................13
2.2.2 DOS-Bootviren (DBS-Viren)...................14
2.3 Hybridviren........................................14
2.3.1 Multipartite................................14
2.4 Systemviren (Cluster-Viren)........................15
2.5 Kernel-Viren.......................................16
2.6 Dateiviren (Fileviren).............................16
2.6.1 Überschreibende Dateiviren..................16
2.6.2 Nicht überschreibende Fileviren (Linkviren).17
2.7 Companionviren.....................................17
2.8 Trojanische Pferde, Dropper und Scherzprogramme....18
2.8.1 Trojaner (trojans)..........................18
2.8.1.1 Namensvettern (spoofing programs)......18
2.8.1.2 Dropper................................19
2.8.2 Logische Bomben (bombs).....................19
2.8.2.1 Zeitbombe (time bomb)..................19
2.8.3 Scherzprogramme (jokes).....................19
2.9 Viren, die noch nicht aufgetreten sind.............20
2.9.1 Geisterviren................................20
2.9.2 "Hide and Seek" Viren.......................20
2.9.3 "Call" Viren................................20
2.9.4 Gepufferte Viren............................20
2.9.5 Hardware Viren..............................21
2.9.6 "Virus Desinformaticus".....................21
3 Verschiedene "Attribute" von Viren.....................21
3.1 Unterscheidung nach Infektionsmechanismus..........21
3.1.1 Direct action-Viren.........................21
3.1.2 Speicherresidente Viren (TSR)...............22
3.1.2.1 Unterscheidung der TSR-Viren nach Speicher-
belegungsstrategien....................22
Beschreibung aller Virenarten und Virengattungen Seite: 3
3.2 Unterscheidung nach Infizierungsgeschwindigkeit....23
3.2.1 Normale Infizierung.........................23
3.2.2 Schnelle Infizierung (Fast-Infector)........23
3.2.3 Langsame Infizierung (Slow-Infector)........23
3.2.4 Spärliche Infizierung (Sparse)..............24
3.3 Tarnkappenviren und Tarnmethoden...................24
3.3.1 Stealthviren................................24
3.3.2 Dir-Stealthviren............................24
3.3.3 Tunneln (Tunneling).........................25
3.3.4 System File Table (SFT) Techniken...........25
3.3.5 Cavity Viren................................26
3.3.5.1 Header-Viren...........................26
3.3.5.2 Stackbereich Viren und "Zerohunting"...27
3.3.6 Slackbereich Viren..........................27
3.3.7 "Live and Die" Viren........................27
3.3.8 Armored (Gepanzert).........................28
3.3.9 Hardware Stealthtechniken...................28
3.3.9.1 Floppy Disc Boot Simulation............28
3.3.9.2 Hardware Level stealth.................28
3.3.9.3 Flash-BIOS stealth.....................28
3.3.10 Abhilfe bei Stealthviren...................29
3.4 Verschlüsselte und polymorphe Viren................29
3.4.1 Mutation....................................29
3.4.2 Verschiedene Arten von Polymorphismus.......30
3.4.2.1 Oligomorph.............................30
3.4.2.2 Weitere Arten von Polymorphismus.......30
3.4.2.3 Zerstückelt (Permutating)..............30
3.4.3 Slow Mutating (Langsames Mutieren)..........32
3.5 Retroviren.........................................32
4 Zukünftige Betrachtungen...............................33
4.1 Trends in der Virenentwicklung ....................33
4.1.1 Virenkits und Mutation Engines..............33
4.1.2 Multipartite Viren..........................34
4.1.3 Devicetreiberviren unter Windows............34
4.2 Internationale Vernetzung..........................34
5 Literaturverzeichnis...................................35
Beschreibung aller Virenarten und Virengattungen Seite: 4
1.4 Einige Definitionen
Die meisten der hier eingeführten Begriffe sind allgemein
bekannt, werden jedoch in der Literatur unterschiedlich
gebraucht, so daß zur Klärung hier eine knappe formale Defi-
nition erfolgt. Eine Definition erfolgt in kursiver Schrift.
Eine weitere ausführliche Erklärung dieser Begriffe steht
teilweise in den nachfolgenden Kapiteln oder kann z. B.
folgender Fachliteratur [Bontch], [Esch93], [FAQG93], [FAQL92],
[Ferb92] und [PB92] entnommen werden.
1.4.1 Softwareanomalien
Die Software verhält sich nicht so, wie sie spezifiziert wurde,
also nicht nach den Regeln, nach der sie entwickelt wurde.
Tritt eine Softwareanomalie in einem Computersystem auf, so
verhält es sich oder einzelne Systemkomponenten davon nicht mehr
so wie erwartet. Dies hat Konsequenzen für die Umgebung, in der
das Computersystem eingebettet ist, weil die Funktionalität und
Systemsicherheit eingeschränkt ist. Ein anderer, gebräuchlicher
Begriff hierfür ist auch der "Seiteneffekt". Der Begriff
Softwareanomalie kann demnach als Oberbegriff für eine Anzahl
von Phänomenen verwandt werden, unter die Computerviren und ver-
wandte Programme fallen. Hierzu zählen u. a.:
» Computerviren
» Würmer und Kettenbriefe
» Trojanische Pferde und Dropper
» Logische Bomben und Trapdoors
» Scherzprogramme
Eine kurze Definition dieser Anomalien erfolgt auf den
nachfolgenden Seiten.
1.4.2 Der Computervirus
Ein Computervirus ist ein Computerprogramm, das die Fähigkeit
besitzt, sich selbst zu reproduzieren (vermehren), indem es
Betriebssystemkomponenten oder Betriebssystemabläufe (Umgebung)
zu seinen Gunsten modifiziert1.
Der Computervirus hat, im Gegensatz zum biologischen Virus (das
Virus, von lat. virus = giftiger Saft), den männlichen Artikel
und wird oft nur kurz als "der Virus" bezeichnet.
Folgende weitergehende Folgerungen lassen sich aus dieser
Definition ableiten:
» ein Virus muß von jemanden geschrieben werden
» damit ein Virus aktiv werden kann, muß er, z. B. durch
Programmstart, aktiviert werden.
» ein Virus benötigt einen Wirt (Wirtsprogramm)
____________________
1Anmerkung: Diese Definition wurde allgemein gehalten, damit
auch spezielle Computerviren, wie etwa "Companionviren"
erfaßt werden können.
Beschreibung aller Virenarten und Virengattungen Seite: 5
» ein Virus vervielfältigt sich demnach selbständig und
deshalb meistens unkontrolliert (lack of control)!
» ein Virus verändert seine "Umgebung"
» es gibt keine "gutartigen" Viren, weil Viren in den
Betriebssystemablauf eingreifen, was zu
Softwareanomalien führt (unauthorized data modifica-
tion).
Mit einem "research virus" bezeichnet man Viren, die zwar
geschrieben wurden, aber nie verbreitet wurden.
Es handelt sich hierbei meistens um extrem primitive Viren2 oder
Viren, die direkt vom Virenautor an Antivirenforscher geschickt
wurden.
Mit "in the wild" bezeichnet man Computerviren, die außerhalb
von den Labors von Virenforschern gefunden wurden.
Der Begriff "in freier Wildbahn" wird teilweise auch hierfür
verwendet.
Eine Variante ist ein Virus, der durch Modifizieren eines
bekannten Virus entstanden ist.
Beispiele hierfür sind hinzugefügte Funktionen oder Änderungen
am Viruscode um eine Entdeckung zu erschweren.
Trifft einer dieser Punkte nicht zu, so handelt es sich
eventuell um ein Trojanisches Pferd, einen Wurm, eine logische
Bombe oder eine andere Softwareanomalie.
1.4.3 Der Wirt
In der Biologie bezeichnet man das Medium, daß einen
Krankheitserreger transportiert als Vektor einer Infektion. Im
Computerbereich hat sich hierfür die Bezeichnung Wirt
eingebürgert.
Ein Wirt ist eine Betriebssystemkomponente, die von einem Virus
befallen (infiziert) werden kann und es dem Virus ermöglicht,
sich weiterzuverbreiten. Einen infizierten Wirt bezeichnet man
auch als verseucht.
1.4.4 Die Infektion
Die Infektion ist der Befall eines Wirtsprogrammes durch einen
Virus.
1.4.5 Würmer (worms)
Ein Wurm ist ein eigenständiges Programm, das Kopien von sich
selbst erzeugt und zum Ablauf bringt.
Der Begriff Wurm kommt aus der UNIX-Welt. Die Bezeichnung "Wurm"
ist etwas verwirrend. Vermutlich kommt die Bezeichnung Wurm von
der Eigenschaft des Wurmprogrammes, sich von Benutzer zu
Benutzer durchzufressen. Eine andere Erklärung für die
Bezeichnung "Wurm" könnte eventuell von dem UNIX Spiel "worm"
____________________
2Sogenannte "Virogen"-Viren.
Beschreibung aller Virenarten und Virengattungen Seite: 6
abgeleitet werden: In diesem Spiel wird der Wurm beim Fressen
immer länger. Ein Computerwurm "frißt" sich auch von System zu
System durch und wird dabei immer "länger", solange bis die
Systemlast so groß ist, bis das System zusammenbricht.
Ein Wurm ist die Vereinigung aller einzelner Wurmsegmente. Ein
Wurmsegment ist ein lauffähiges Programm, welches sich innerhalb
von Netzwerken selbst vervielfältigt, ohne hierbei
Wirtsprogramme zu verändern bzw. zu infizieren. Ein Wurm
benötigt - im Gegensatz zu Computerviren- keinen Wirt.
Wurmsegmente können sich gleichzeitig in verschiedenen Systemen
befinden. Dies geschieht z. B. auf vernetzten Rechnern durch
Prozeßgabelung (z. B. mit dem fork-Systemaufruf) oder, wie beim
Tannenbaumwurm, durch Duplizieren und Versendung des eigenen
Programmcodes an andere Rechner. Der Wurm kann mehrere Programme
auf dem eigenen Rechner gleichzeitig ablaufen lassen
(Multitasking) oder andere Rechner über Netzwerkdienste nutzen.
Weil auf einem isolierten Rechner keine Verbreitung erfolgen
kann, sind Würmer typisch für Netzwerke. Ein wichtiges Kriterium
für einen Wurm ist, daß er sich selbst an andere Rechner
versenden darf und dort sich selbst starten kann. Gerade der
Fernstart ist aus Sicherheitsgründen normalerweise nicht
möglich. Die Praxis hat jedoch gezeigt, daß dies möglich ist, z.
B. Morris_s "Internet-Wurm" [Morr88].
1.4.6 Kettenbriefe
Der Kettenbrief ist eine Spezialform des Wurmes, der die Aufgabe
hat, in den elektronischen Postkästen des Netzes Nachrichten
abzulegen (Email).
Beispiel: Clausthaler Weihnachtsbaum.
1.4.7 Trojanisches Pferd
Ein trojanisches Pferd (kurz auch Trojaner) ist ein Programm,
das eine bestimmte gewünschte Funktion ausführt, jedoch auch
unerwartete (und unerwünschte) Funktionen enthält.
Von diesem Gesichtspunkt aus ist ein Trojanisches Pferd einem
Virus ähnlich, mit der Ausnahme, daß ein Trojanisches Pferd sich
nicht vermehrt.
1.4.8 Speicherresident
Ein speicherresidenter Virus installiert sich beim Ausführen
eines verseuchten Wirtsprogrammes selbst als ein Teil des
Betriebssystemes.
Der Virus bleibt solange im Arbeitsspeicher, bis das System
ausgeschaltet wird. Ist solch ein Virus erst einmal im
Arbeitsspeicher installiert, kann er jeden passenden Wirt bei
einem geeigneten Zugriff infizieren.
1.4.9 Tarnkappenviren
Ein Tarnkappenvirus (engl. Stealthvirus, stealth = heimlich) ist
ein speicherresidenter Virus, der versucht, eine Entdeckung von
sich selbst zu verhindern, indem er sein Vorhandensein in
infizierten Wirten verheimlicht.
Beschreibung aller Virenarten und Virengattungen Seite: 7
Um dies zu erreichen, muß solch ein Virus Systemaufrufe, die
einen Zugriff auf den infizierten Wirt durchführen, abfangen und
entsprechend manipulieren.
1.4.10 Verschlüsselte Viren
Ein verschlüsselter Virus besteht aus zwei Teilen: aus einem
kurzen Entschlüsselungsteil (decryptor) und dem verschlüsselten
Rest (encrypted body).
Wird solch ein verschlüsselter Virus ausgeführt, wird zuerst der
Decryptor ausgeführt, der den eigentlichen Virus entschlüsselt.
Ein variabel verschlüsselter Virus benützt verschiedene
Schlüssel oder verschiedene Verschlüsselungsalgorithmen. Solche
Viren werden auch als oligomorph verschlüsselt bezeichnet.
Ein polymorph verschlüsselter Virus ist ein variabel
verschlüsselter Virus, der zwar funktionelle gleiche Kopien
seiner selbst erzeugt, diese Kopien sind von ihrem Aussehen
jedoch total unterschiedlich. Eine Routine, die solche
polymorphen Decryptoren erzeugt, wird auch als "Mutation Engi-
nes" bezeichnet.
1.4.11 Selbst-upgradend
Ein Virus, der nach Vorgängerversionen seiner selbst sucht und
diese durch sich selbst ersetzt, bezeichnet man als "selbst-
upgradend".
1.5 Erste Attacken
Die ersten sich selbstreproduzierenden Programme waren
sogenannte "mainframe rabbits" ([Ferb92], S. 5), die 1966 am
MIT, Boston von zwei Studenten geschrieben wurden. Diese
Programme, die als Interpreterscript für den Batchbetrieb eines
CTSS Timesharing-Systemes auf einer IBM 7090 geschrieben wurden,
erzeugten von sich selbst Kopien und verlangsamten so den
Systemdurchsatz enorm. Aufgrund eines Fehlers des Systems wurde
der Rechner lahmgelegt. Der Interpreter unterstützt oft
Kommandos für Prozeßgenerierung und Prozeßmanipulation. Der
"rabbit" kann sich in diesem Fall zig mal kopieren und alle
Prozeßqueues füllen, die erreichbar sind. Ältere Systeme, die
noch keinen Prozessorscheduler besitzen, brechen dann irgendwann
unter der Systemlast zusammen.
1.5.1 Die ersten Netzwerkwürmer
1972 beschrieb David Gerrold in seinem Buch "When Harlie Was
One" das Konzept eines Netzwerkwurmes, der sich über Selbstwähl-
Modems auf andere Rechner kopiert, sich dort aktiviert und seine
alte Kopie löscht ([Ferb92], S. 6).
Diese Beschreibung trifft grob auf die ersten Würmer ("Creeper"
und "Reaper") zu, die von zwei Forschern in den 70_er Jahren zu
Demonstrationszwecken entwickelt wurden. Creeper druckte ein
Datei aus dem System aus, wartete und kopierte seinen Programm-
code auf einen anderen vernetzten Rechner und löschte sich auf
Beschreibung aller Virenarten und Virengattungen Seite: 8
dem Ursprungsrechner. Creeper "kroch" somit langsam von
Rechensystem zu Rechensystem. Creeper wurde dahingehend
modifiziert, daß er zusätzlich noch Kopien von sich selbst
erzeugte und diese nicht mehr löschte! Der erste Netzwerkwurm
war geboren. Nun wurde der Wurm Reaper entwickelt, der nach
Kopien des Creaper-Programmes suchte und diese löschte. Somit
war auch das erste "Antivirenprogramm" entwickelt worden.
Solche Programme, die selbst von ihrem Aufbau Viren sind, jedoch
den Auftrag haben, einen anderen Virus zu suchen und zu
zerstören bezeichnet man als "Anti-Anti Virus".
Im Xerox Alto Research Center wurden 1982 die ersten Würmer für
verteilte Berechnungen erstellt. Aufgrund eines Programmfehlers
vermehrte sich der Wurm unkontrolliert und brachte das System
zum Zusammenbruch.
Der Internet-Wurm, der 1988 von Morris freigesetzt wurde,
vermehrte sich innerhalb eines Tages auf schätzungsweise
hunderten bis mehreren Tausend Rechnern. Der Internet-Wurm war
der erste Wurm, der weltweit publik wurde.
1.5.2 Die ersten Viren
1980 wird der erste Laborvirus auf einem APPLE II entwickelt.
1981 wird der Virus "Elk Cloner" auf einem APPLE II entdeckt. Er
führt zufällige Aktionen aus, infiziert den Bootsektor und
bindet sich speicherresident in die Interruptes ein. 1982 wird
von Joe Dellinger der erste selbst-upgradende Virus für einen
APPLE II mit DOS 3.3 verbreitet.
1.5.3 Erste wissenschaftliche Untersuchungen
Professor L. Adelmann, Universität South California, prägt als
erster den Begriff "Computervirus".
Der erste, der sich wissenschaftlich mit der Untersuchung von
Computerviren beschäftigte, war Fred Cohen. Ein Artikel von ihm
"Computer Viruses - Theory and Experiments" erschien 1984, seine
Doktorarbeit über das gleiche Thema beendete er 1986 ([Treb92],
S. 16f). Cohen war auch einer der ersten, die experimentelle
Viren auf Großrechnern entwickelte. Die nachfolgende Tabelle
gibt einen kurzen Überblick über seine Tätigkeiten.
Datum Beschreibung
03.11.83 Entwicklung eines Virus für UNIX (VAX 11/750).
Die Programmierung dauerte 8 Stunden, die
Systemrechte erlangt der Virus nach
durchschnittlich 30 Minuten.
10.11.83 Experiment mit einem über ein Bulletin Board
(BBS) eingeschleustem Programm.
Juli 84 Tests auf Bell-LaPadula System (Univac 1108)
August 84 Test unter UNIX (VAX)
Beschreibung aller Virenarten und Virengattungen Seite: 9
31.08.84 Veröffentlichung seiner Arbeit "Computer Viruses
- Theory and Experiments" bei Professor L.
Adelmann.
Tabelle: Erste wissenschaftliche Viren
Dies waren die ersten experimentellen Viren auf
wissenschaftlicher Basis.
1.6 Chronologischer Rückblick
- 1985 -
Am 11.12.85 veröffentlichte die Zeitschrift "Apples" ein Virus
im Quellcode für den APPLE II. Die Zeitschrift "Computer
Persönlich" zog mit ihrer Ausgabe Nr. 24 vom 12.11.86 nach, die
ebenfalls den Quellcode für einen Virus für den APPLE II
enthielt ([Treb92], S. 18).
- 1986 -
Im Januar 1986 wurde die erste Vireninfektion auf einem
Großrechner für Datenverarbeitung an der FU in Berlin entdeckt.
19863 wurde der erste Virus für Rechner mit INTEL-Architektur
entdeckt, der sog. Pakistani-Brain4 Virus. Mitte des Jahres
tauchten die ersten DOS-Viren in englischsprachigen Programmen
auf. Kurz darauf wurden die Dateiviren Vienna, Cascade, LeHigh
sowie die Bootviren Yale, Stoned und Pingpong gefunden.
- 1987 -
Im November 1987 wird der Virus LeHigh gefunden, der eine neue
Technik verwendet, ein sogenannter Stackbereich Infektor. Kurz
darauf (Dezember 1987) wurde der Israeli-#1 (Suriv) Virus an der
Universität von Jerusalem gefunden, der der Urvirus der Jeru-
salem Familie5 ist.
Im gleichen Jahr wird in Deutschland der Cascade Virus
(1701/1704) gefunden. Er ist der erste speicherresidente
verschlüsselte Virus, man spricht deshalb auch von der zweiten
Virengeneration. Für andere Rechner tauchen ebenfalls die ersten
Viren auf,
____________________
3Hier gehen die Meinungen nach dem ersten Auftauchen des Brain-
Virus auseinander. Laut [Esch93] wurde er im Oktober 1987
an der Universität von Dalaware entdeckt. Laut Experten,
könnte der Vorgänger des Brain-Virus, der Ashar-Virus,
jedoch aus dem Jahre 1986 oder früher stammen. Sicher ist
jedoch, daß er im Januar 1986 in Pakistan gefunden wurde,
siehe ([Ferb92], S. 11).
4Ein speicherresidenter Bootvirus, mit Tarnkappeneigenschaften.
Er konnte jedoch nur 360 KB Disketten infizieren.
5Vom Jerusalem Virus gibt es schätzungsweise 300, zum Teil sehr
stark modifizierte Varianten!
Beschreibung aller Virenarten und Virengattungen Seite: 10
+ MAC - nVir wird in Deutschland entdeckt, im Dezember der
Peace Virus.
+ Amiga - Swiss Cracker Association Virus.
+ Atari - Pirate Trap Virus und Aladdin (der erste Cross-
Platform Virus)
+ UNIX - IBM MVS 370 Virus, im Juni ein anderer UNIX Virus
In der "c_t" wird 1987 ein Artikel mit dem Source-Code von einen
Virus für den Atari ST veröffentlicht. Aus diesen Quellcode
entsteht ein ganzer Virenstamm in der Nachfolgezeit. Es werden
deshalb die ersten Kritiken zur Veröffentlichung von Viren
Source-Codes laut.
Der Clausthaler Weihnachtsbaum (Christmas Tree Exec) wird am
17.12.87 von der Hochschule Clausthal-Zellerfeld über IBM-VNet,
EARN und BitNet um die ganze Welt geschickt. Es handelt sich
hierbei um einen speziellen Wurm, einen sogenannten Kettenbrief,
der sich über Email Adressen verbreitet.
- 1988 -
1988 wird der erste Virenbaukasten (Virus Construction Set) für
den Atari ST veröffentlicht. Im gleichen Jahr erlangen die
Netzwerk Würmer "Internet-Worm" und "Father Christmas" weltweite
Verbreitung.
- 1989 -
Der erste polymorphe Virus (1260, V2Px oder Washburn) wird 1989
gefunden. Es werden die ersten Dateiviren (Frodo) gefunden,
welche Tarnkappeneigenschaften verwenden. Erste internationale
Bemühungen, Viren zu klassifizieren. Die ersten gedruckten
Dienste, die über Viren informieren (Virus Bulletin und Virus
Telex) erscheinen. Weitere Würmer tauchen auf; der WANK (Worm
against nuclear killers) und OILZ Wurm. Die AIDS Trojan Diskette
wird weltweit versendet. Die Medien finden Interesse an der
Thematik Computer Viren. Die ersten Artikel und Bücher werden
veröffentlicht.
- 1990 -
Der Whale Virus wird 1990 entdeckt, er ist ein "Super"-Virus6,
kann sich selbst modifizieren, ist oligomorph verschlüsselt und
enthält Tarnkappeneigenschaften. Er ist bis heute der größte
speicherresidente Virus für das DOS Betriebssysteme. Auf dem Ma-
cinthosh wird ein Trojanisches Pferd gefunden, daß das
LaserWriter Paßwort verändert. In diesem Jahr wurde der DIR-II
Virus unter DOS freigesetzt. Es ist ein ganz neuer Virustyp, er
infiziert nämlich nicht Programme sondern deren FAT Einträge.
Das erste Virus Construction Set (VCS) vom "Verband deutscher
Virenliebhaber" für DOS wird verbreitet.
- 1991 -
____________________
6Laut Gerüchten, soll er sogar von Virenforschern als
"Laborvirus" programmiert worden sein. Dieser Virus hat
eher wissenschaftlichen Charakter, der wurde nie groß in
der "freien Wildbahn" (in the wild) gefunden.
Beschreibung aller Virenarten und Virengattungen Seite: 11
Im Jahre 1991 taucht eine Vielzahl neuer Viren auf, die Anzahl
der neu gefunden Viren wächst jetzt langsam aber sicher
exponentiell an. Der Yankee.Login (Get Password) Virus wird
entdeckt. Er wurde speziell für Novell-Netware (unter DOS)
programmiert, um Paßwörter auszuspähen. Die weltweite
Zusammenarbeit wird besser, es werden die Organisationen CARO
(Computer Anti-Virus Research Organisation) und EICAR (European
Institute for Anti-Virus Research) gegründet.
- 1992 -
Die erste Mutation Engine wurde 1992 von "Dark Avenger" als
Objektdatei veröffentlicht. Seither gibt es eine wahre Flut an
Mutation Engines.
- 1993 -
Ab 1993 kann man generell sagen, daß DOS Computerviren eine
eigene Dynamik entwickelt haben. Fast jeden Tag tauchen zwei bis
drei neue Computerviren auf und ca. jeden Monat taucht eine neue
Mutation Engine oder ein neues Virenkit auf. Prinzipiell gibt es
seit diesem Zeitpunkt keine neuen Viren mehr, nur altbekanntes
in neuen Variationen, wie z. B. Kernel-Infektoren oder
permutierenden polymorphe Viren.
- heute -
Mit den "neuen" Betriebssystemen wie OS/2, Windows oder UNIX
Derivate für PC sind auch neue Viren für diese Betriebssysteme
entstanden. Im Gegenzug kam die Virenentwicklung z. B. beim
Macintosh oder bei UNIX Würmern fast zum Stillstand, weil einige
Virenprogrammier erfolgreich verurteilt wurden, was zu einer
Abschreckung führte.
Weitere Trends in der Virenentwicklung habe ich in einem eigenen
Kapitel "Trends in der Virenentwicklung" zusammengefaßt.
Aus diesen Gründen konzentriert sich diese Arbeit hauptsächlich
auf DOS Computerviren.
─══[ 2 KLASSIFIZIERUNG/TYPOLOGIE ]═════════════════════════════─
Im nachfolgenden Kapitel möchte ich existierende Viren nach
ihrem Infizierungsverhalten klassifizieren. Im nächsten Kapitel
wird dann auf die möglichen Attribute eingegangen, die
Computerviren haben können.
2.1 Einleitung
Die nachfolgende Beschreibung bezieht sich fast ausschließlich
auf Computerviren, die unter dem Betriebssystem DOS7 auftreten.
Abgesehen von Tarnkappentechniken und einigen speziellen
Dateiformaten unter DOS/Windows ist die Beschreibung der Viren-
arten auf jedes Betriebssystem übertragbar!
____________________
7Anmerkung: Fast alle Viren laufen unter den verschiedenen DOS
Versionen wie MS-DOS, PC-DOS, DR-DOS oder Novell-DOS.
Beschreibung aller Virenarten und Virengattungen Seite: 12
2.1.1 Aufenthaltsbereiche von Viren
PCs besitzen zwei Bereiche, die für eine Vermehrung von Viren
generell in Betracht kommen. Es handelt sich um das Dateisystem
und um den sogenannten Bootrecord. Somit kann zwischen zwei
Virenarten unterschieden werden, nämlich
+ Dateiviren, die
+ Dateien (Programme) oder das
+ Dateisystem infizieren und
+ Bootviren, die
+ den Master Boot Record (MBR) oder
+ den aktiven Bootrecord infizieren.
Kann ein Virus beide Bereiche infizieren, bezeichnet man in als
Hybridvirus oder auch multipartite.
Es folgt eine Klassifizierung von Viren nach Art und Weise der
Infektion, anschließend werden die verschiedenen Virengattungen
genauer beschrieben.
«UNGULTIGES_FELD: Objekt»
Abb.: Grobe Klassifizierung von Viren und deren hauptsächliche
Verbreitung
2.2 Bootviren
Bootviren infizieren keine Programme, sondern den sogenannten
Bootsektor, auch Bootrecord genannt! Man unterscheidet zwischen
zwei Arten von Bootviren, die sich in der Infizierung der
Festplatte unterscheiden. Bei der Infizierung von Disketten
verhalten sie sich jedoch gleich. Es handelt sich um
+ MBR-Viren (Partitionsviren)8
+ DOS-Bootviren (DBR)
____________________
8 MBR ist die Abkürzung für "Master Boot Record"
Beschreibung aller Virenarten und Virengattungen Seite: 13
«UNGULTIGES_FELD: Objekt»
Abb.: Klassifizierung von Bootviren
Eine Zwitterstellung nehmen die Hybrid-Viren und Kernel-Viren
ein, ihr Merkmal ist jedoch, daß sie auch den MBR, den DBR der
Festplatte oder DOS Bootsektoren auf Disketten infizieren
können.
Achtung: Bootviren sind normalerweise speicherresident und
extrem infektiös! Bei einem aktiven Bootvirus wird jede
Diskette, die nicht schreibgeschützt ist, von dieser Virenart
infiziert! Bootviren verbreiten sich somit schnell und sehr
effektiv. Im Zeitraum September 1994 bis Mai 1995 waren die 10
am häufigsten auftauchenden Viren Bootviren! Knapp dahinter
folgen dann die Hybridviren, die ebenfalls den MBR von Festplat-
ten infizieren.
2.2.1 MBR-Viren (Partitionsviren)
Fast alle Viren, die auf Diskette den Bootsektor befallen,
infizieren auf der Festplatte nicht den DOS-Bootsektor, sondern
den Master-Boot-Record (MBR), im Sprachgebrauch
fälschlicherweise auch "Partition Table" (Partitionstabelle)
genannt. Der MBR (Master Boot Record) befindet sich auf dem er-
sten physikalischen Sektor der Festplatte und hat bei allen PCs
ein einheitliches Format9.
Die Partitionstabelle, welche die Daten über die einzelnen
Plattenpartitionen enthält, ist ein zusätzlicher Bestandteil des
MBR. In der Partitionstabelle können bis zu vier Partitionen
aufgenommen werden. Eine dieser Partitionen wird normalerweise
als aktiv markiert.
Der MBR enthält zusätzlich ein kleines Programm (Lader), welches
bei Rechnerstart direkt vom BIOS her geladen und aufgerufen wird
und den Rechner auf das Booten des eigentlichen Betriebssystems
vorbereitet. Das Ladeprogramm prüft anhand der Partiti-
onstabelle, welche Partition als aktiv markiert ist. Anhand der
weiteren Daten in der Partitionstabelle wird dann der erste
Sektor der aktiven Partition geladen und ausgeführt. Diesen
Vorgang nennt man "bootstrapping".
Dieses Ladeprogramm wird nun von einem MBR-Infektor entweder
überschrieben, verschoben und ersetzt, oder teilweise manipulie-
rt. Viren, die so verfahren, zählen im Sprachgebrauch zu den
Bootviren. Manche Viren, die Dateien infizieren, sind so pro-
grammiert, daß sie auch den MBR infizieren (siehe Hybrid-Viren).
MBR-Viren sind somit nicht auf das Betriebssystem DOS
beschränkt, sondern können auch OS/2 und Linux-Rechner
infizieren, die den PC Befehlssatz verwenden! Viren, die den MBR
infizieren, können dies auf mehrere Arten tun:
____________________
9 Siehe auch im Anhang: "MBR- und Partitionstabellen-Layout" und
"Boot- und MBR-Beschreibung".
Beschreibung aller Virenarten und Virengattungen Seite: 14
+ Ersetzen des MBR und Verwenden von Tarnkappeneigenschaften.
Sobald der Virus aktiv ist, scheint somit der MBR unverändert
zu sein.
+ Überschreiben oder Ersetzen des Ladeprogrammes, die
Partitionstabelle wird jedoch übernommen. Dies ist sehr
gefährlich, falls z. B. ein UNIX oder OS/2 Betriebssystem
nachgeladen werden soll, weil im Ladeprogramm teilweise schon
betriebssystembezogene Aktionen durchgeführt werden, die der
Virus natürlich nicht durchführen kann. Oftmals hängt dann ein
solches System.
+ Es gibt auch Viren, die den MBR anders als hier beschrieben
infizieren. Sie verändern z. B. nur Teile des MBR, legen für
sich selbst eine neue Partition in der Partitionstabelle an,
von wo aus sie dann weiterbooten lassen, oder sie codieren den
gesamten MBR samt Partitionstabelle so, daß dieser nur bei
geladenem Virus lesbar ist (z.B. ExeBug). Auch gibt es Viren,
die den MBR aufgrund eines Programmierfehlers (oder
absichtlich) einfach überschreiben (z. B. Monkey oder Azusa).
Abb.: Infektionsmechanismus von MBR-Viren
Viren, die den MBR infizieren, müssen mit speziellen Antiviren-
programmen entfernt werden, weil die Partitionstabelle nicht
gelöscht werden darf und der Virus durch ein entsprechendes
Ladeprogramm ersetzt werden muß. Andernfalls muß die Festplatte
formatiert werden! Mit dem Programm Norton Disk Doktor kann
unter Umständen solch ein Virus entfernt werden.
Bekannte Beispiele für Bootviren sind: Monkey, Jack The Ripper,
Parity Boot, Stoned, Cansu (V-Sign), AntiExe, Michelangelo und
Pakistani Brain.
2.2.2 DOS-Bootviren (DBS-Viren)
Diese Sorte Viren benutzen den sogenannten DOS-Bootsektor als
Wirt, in den sie sich einklinken. Sie werden jedesmal beim
Starten von DOS geladen. Der DOS-Bootsektor ist der erste
logische Sektor einer Diskette oder einer Festplatte. Er enthält
ein kurzes Programm, anhand dessen DOS das Betriebssystem laden
kann, wenn die Partition bzw. Diskette bootfähig ist. Dieses
Programm wird nun von einem Bootsektorvirus entweder an eine
andere Stelle des Datenträgers kopiert, während der Virus den
Bootsektor überschreibt und eine Referenz auf das original
Bootprogramm erstellt, oder es wird der Code im Original
Bootprogramm manipulieren, so daß beim Booten zuerst der Virus-
code ausgeführt wird und dieser sich hinterher zum Origi-
nalprogramm rückverzweigt. Es wird also zuerst der MBR aus-
geführt, der als aktive Partition DOS angemeldet hat, dann der
Virus und erst dann wird der original DOS-Bootsektor
nachgeladen! Die meisten Bootviren lassen sich jedoch sehr
einfach durch Verwendung des SYS-Befehls entfernen.
Ein Beispiel hierfür ist der Form-Virus, der schon manchen OS/2
Anwender zur Verzweiflung gebracht hat. Szenario: OS/2 ist als
aktive Partition in der Partitionstabelle angemeldet. Der Form-
Virus lädt jetzt den ersten Sektor der OS/2 Partition, speichert
ihn am Ende der Festplatte ab und ersetzt ihn durch sich selbst.
Beschreibung aller Virenarten und Virengattungen Seite: 15
Wird jetzt OS/2 gebootet, wird zuerst Form aktiv, der dann
versucht, den original OS/2 Bootsektor nachzuladen. Dies kann
jedoch fehlschlagen, weil eventuell OS/2 ihn überschrieben hat.
Das System hängt dann! Das gleiche Problem kann auftreten, falls
eine Komprimierungssoftware wie Stacker oder DoubleSpace verwen-
det wird.
2.3 Hybridviren
Hybridviren sind Viren, die einerseits Programme und anderer-
seits den Partitionssektor der Festplatte infizieren.
Die Hybridviren werden dann beim "Hochfahren" des Systems schon
aktiviert und sind dementsprechend schwierig zu entfernen (Bsp.:
Natas, Junkie, Flip-B und Tequila). Inzwischen gibt es
Hybridviren, die zusätzlich in der Lage sind, auch Bootsektoren
von Disketten zu infizieren! Bekannte Beispiele für Hybridviren
sind Natas, Goldbug, Junkie oder Neuroquila.
2.3.1 Multipartite
Eine weitere Bezeichnung für Hybridviren ist "Multipartite". Ein
solcher Virus kann Wirte auf verschiedene Weise infizieren, wie
z. B. Companiondateien erzeugen und zusätzlich den MBR
infizieren.
Der Virus Goldbug, der Partitionssektoren und
Diskettenbootsektoren infiziert und zusätzlich Companiondateien
erzeugt, ist z. B. ein solcher Multipartite Virus.
2.4 Systemviren (Cluster-Viren)
Diese Virenart benutzt eine besondere Eigenschaft von DOS aus,
um ein DOS-Dateisystem zu infizieren. Diese Methode wird bislang
ausschließlich vom DIR-II (Creeping Death) Virus und dessen
Varianten benutzt. Die zusätzlich verwendeten Techniken läßt
DIR-II zugleich in die Gattung der Stealthviren fallen.
Geschrieben wurde der DIR-II Virus 1990 in Bulgarien, Varna, von
zwei Mathematikstudenten. Der DIR-II Virus ist extrem virulent,
weshalb er zu den meistverbreiteten Viren gehört, obwohl er im
Original nur mit DOS 3.0 bis DOS 5.0 Beta funktioniert.
Wirkungsweise: Wird der Virus das erste Mal gestartet, nistet er
sich als Bestandteil des Betriebssystems (im CONFIG-Bereich)
speicherresident ein. Der Virus bindet sich als weiterer
Devicetreiber ein, deklariert sich aber als Bestandteil von
COMMAND.COM. Durch die Deklarierung als
Betriebssystembestandteil kann man ihn schwerer lokalisieren.
Wird jedoch ein schon infiziertes System gebootet, vergrößert er
den Bereich des Kommandointerpreters um ca. 1.5 KB! Als nächsten
Schritt schreibt sich der Virus selbst in die letzten 1024 Bytes
des Datenträgers, d. h. bei Festplatten, 360 KB & 720 KB Dis-
ketten in den letzten Cluster, bei 1.2 MB & 1.44 MB Disketten in
die zwei letzten Cluster. Diese Cluster werden vom Virus als
belegt markiert (als EOF). Daten, die dort standen, sind
verloren! Anschließend versucht er auf dem C: Laufwerk die Datei
c:" " (Alt-255) auszuführen, was dazu führt, daß DOS das
aktuelle Verzeichnis und den ganzen Pfad (PATH=...) durchsucht.
Beschreibung aller Virenarten und Virengattungen Seite: 16
Weil der Virus schon aktiv ist, werden beim Durchsuchen alle
Programme im Pfad infiziert!
Der Virus selbst verwendet selbst keine Interrupts, sondern
fängt DOS Device Treiberaufrufe ab, die er entsprechend
modifiziert. Infiziert werden vom Virus Einträge aller aus-
führbaren Dateien (COM & EXE) in der ersten FAT (File Allocation
Table). Der Virus kopiert und verschlüsseltet deren Zeiger auf
die ungenützten Einträge in der ersten FAT, während er den
Originaleintrag auf sich selbst umsetzt. Ruft der Benutzer nun
ein Programm auf, wird aufgrund des umgesetzten Eintrags zuerst
der Virus aufgerufen. Dieser sieht nun in seiner "eigenen FAT"
nach, welches Programm der Benutzer eigentlich starten wollte
und lädt nun dieses von der Festplatte in den Speicher, wo es
gestartet wird.
Stealthtechniken: Die Disketten- und Festplattengröße wird vom
Virus als um einen Cluster kleiner deklariert, weshalb nicht auf
den eigentlichen Virus zugegriffen werden kann. Wenn von DOS aus
auf einen infizierten Directorysektor zugegriffen wird, verän-
dert der Virus den Sektor im Arbeitsspeicher derart, daß er
uninfiziert erscheint (100% Stealtheigenschaften). Der Benutzer
merkt also vom Virus nichts, weil der eigentliche Wirt überhaupt
nicht verändert wurde, sondern nur dessen Directory-Eintrag! So-
lange der Virus im Speicher ist, sehen nämlich alle Ver-
zeichnisse und Einträge völlig normal aus. Bootet man jedoch von
sauberen Diskette und schaut sich ein Verzeichnis auf der
Festplatte an, so haben alle ausführbaren Dateien die Länge 1024
Bytes (Anmerkung: Länge des Virus) und zeigen auf die gleiche
Datei, nämlich den Virus, der sich am Ende des Datenträgers
befindet (s. o.). Durch die "Cluster"-Technik kann diese
Virenart nicht von Checksummenprogrammen und Monitorprogrammen
erfaßt werden!
Dieser Virus ist so vermehrungsfreudig, daß er sich, einmal
resident, bei bloßen Lesezugriffen auf nicht schreibgeschützte
Disketten kopiert und dort in gleicher Weise den Datenträger
infiziert. Die Aliasbezeichnung "CD = Creeping Death"
(schleichender Tod) ist in diesem Fall sehr treffend! DIR-2 hat
sich nach seiner "Freisetzung" durch seine Autoren wie ein
Flächenbrand von Bulgarien aus durch Osteuropa über die ganze
Welt verbreitet.
2.5 Kernel-Viren
Diese neue Virenart wurde erstmals im Oktober 1994 im russischen
Virus "3APA3A" entdeckt. Dieser Virus benützt einen komplexen
Infektionsmechanismus, jedoch einen komplett neuen. Wie
herkömmliche Bootviren infiziert der Virus Bootsektoren von Dis-
ketten auf die "herkömmliche" Art. Seine Art, die Festplatte zu
infizieren, ist jedoch (noch) einzigartig. Bei Festplatten wird
die Datei IO.SYS bzw. IBMBIO.COM infiziert, die zum DOS Kernel
gehört. Der Virus erzeugt hierbei eine Kopie der Datei IO.SYS,
die dann jedoch ein anderes Attribut (Volumelabel) trägt. Wird
DOS gestartet, wird der Virus durch das Ausführen der Datei
IO.SYS aktiv. Weil der Virus nicht die Partitionstabelle
infiziert und eine Kopie von IO.SYS als geschützte Volumendatei
anlegt, kann der Virus nicht mit FDISK oder SYS entfernt werden.
Beschreibung aller Virenarten und Virengattungen Seite: 17
2.6 Dateiviren (Fileviren)
Unter dem Betriebssystem MS-DOS gibt es verschiedene Pro-
grammarten (BAT, COM, EXE, SYS, Overlays, Linklibaries oder
Windowsprogramme), die sich teilweise erheblich voneinander
unterscheiden. Dateiviren unterscheiden deshalb normalerweise
diese Programmarten bei einer Infektion.
Man unterscheidet generell zwischen
+ überschreibenden Dateiviren und
+ sich anhängenden Viren (Linkviren oder Prepend-
/Appendviren)
Eine weitere genauere Klassifikation erfolgt weiter unten. Wie
schon unter der Beschreibung zu Bootviren erwähnt, ist es
schwierig Hybridviren und Systemviren genau einer Kategorie
zuzuordnen, weshalb sie hier nochmals aufgeführt werden.
«UNGULTIGES_FELD: Objekt»
Abb.: Verschiedene Klassen von Dateiviren
2.6.1 Überschreibende Dateiviren
Der Virus überschreibt den Anfang des befallenen Wirtspro-
grammes. Das heißt, daß das Wirtsprogramm nicht mehr lauffähig
ist! Durch das Überschreiben ändert sich die Dateilänge nicht
(falls der Wirt größer als der Virus ist). So ein Virus ist
selten,
. weil er schon bald auffällt, und
. weil bald kein Programm mehr läuft!
. weil er meistens nicht speicherresident (= gute Vermeh-
rung) ist
Aus diesen Gründen sind solche Viren leicht zu entdecken, ein
Entfernen aus dem Wirt ist jedoch durch das Überschreiben nicht
mehr möglich!
Der am meisten verbreitete überschreibende Virus unter DOS
dürfte der Burger10 (560) Virus sein. Die Mini Viren (Länge
unter 80 Bytes) sind zwar auch überschreibend, jedoch so kurz
(z. B. 22 Bytes), daß das Wirtsprogramm oft noch lauffähig
'bleibt'. Überschreibende Viren sind die einfachste
Virengattung, weshalb z. B. der erste OS/2-Virus überschreibend
ist.
Abb.: Infektionsmechanismus von überschreibenden Viren
____________________
10Der Buchautor Ralf Burger hat diesen Virus als
Assemblerlisting in einem seiner Bücher veröffentlicht!
Beschreibung aller Virenarten und Virengattungen Seite: 18
2.6.2 Nicht überschreibende Fileviren (Linkviren)
Werden auch Append-Viren oder Linkviren genannt. Sie kopieren
sich von Programm zu Programm, bis das ganze System verseucht
ist. Das Weiterkopieren geschieht durch Aufruf eines verseuchten
Programmes. Von diesen Viren merkt man lange nichts, weil die
verseuchten Programme noch lauffähig sind! Die Lauffähigkeit
wird dadurch erreicht, indem sich der Virus
+ an das Ende des Wirtes anhängt ("to append") und den
Einsprungspunkt des Programmes auf den Virencode
"umbiegt" oder
+ den Wirt überschreibt und die am Anfang überschriebenen
Programmteile sichert ("to prepend").
Nach erfolgreicher Infektion wird das Programm vom Virus
rekonstruiert und ausgeführt. Ein Virus, der beide Arten an-
wendet, ist der Jerusalem Virus. COM-Dateien enthalten den Virus
am Programmanfang, während bei EXE-Dateien der Virus am Ende
hängt und der Einsprungspunkt geändert wurde. Dies ist eine der
einfachsten Virengattungen, ca. 60 Prozent aller Viren sind
Link-Viren.
Abb.: Infektionsmechanismus von Linkviren
2.7 Companionviren
Eine eigene Gattung sind die Companionviren (Begleiter). Eine
besondere Eigenschaft ist, daß sie sich nicht in den Wirt
hineinschreiben, sondern sie infizieren ein Wirtsprogramm, indem
sie eine neue, eigenständig ausführbare Datei erzeugen, die beim
Aufruf aufgrund gewisser Umstände vor dem gewünschten Programm
oder anstatt des gewünschten Programmes ausgeführt wird. Diese
Datei enthält den Virus, der hinterher das vom Benutzer ge-
wünschte Programm aufruft11. Eine beliebte Technik solcher Viren
ist es, EXE-Files zu befallen, indem sie im gleichen Verzeichnis
eine versteckte COM-Datei gleichen Namens erzeugen. COM-Dateien
werden von COMMAND.COM (ab DOS 3.3) immer vor gleichnamigen EXE-
Files ausgeführt, so daß der Virus beim Aufruf zuerst aktiv
wird. Ein relativ neuer Virus (Goldbug) nennt seine Wirte
einfach um (EXE-Endung wird durch Leerzeichen ersetzt) und
erzeugt eine EXE-Datei, die beim Starten diesen Vorgang wieder
rückgängig macht.
Abb.: Infektionsmechanismus von Companionviren
____________________
11Dieses Verfahren wird auch von einigen UNIX Viren ausgenützt.
Es wird dann z. B. der Programmname "ProgrammXYZ" in
".ProgrammXYZ" (bitte beachten: Punkt ProgrammXYZ)
umbenannt, welches durch den ls-Befehl nicht mehr sichtbar
ist!
Beschreibung aller Virenarten und Virengattungen Seite: 19
Companionviren werden oft in Hochsprache (PASCAL, BASIC oder C)
geschrieben, weil es fast unmöglich ist, einen Linkvirus in
Hochsprache zu schreiben. Da diese Viren das eigentliche
Wirtsprogramm völlig unangetastet lassen, ist es für den
normalen Anwender extrem schwierig, solch einen Virus zu
entdecken.
Insbesondere Prüfsummen-Software, die alle bisher genannten
Virengattungen finden würde, könnten an dieser Stelle keine
Veränderungen der Datei bemerken. Aufgrund der Eigenart von
Companionviren, ihren Wirt zu infizieren, ist es nicht so
einfach, eine allgemeingültige Definition für einen
Computervirus zu machen.
Einige Virenforscher sehen Companionviren immer noch nicht als
Virus an! Nach meiner Definition sind Companionviren aber
eindeutig Viren, weil sie Betriebssystemabläufe zu ihren Gunsten
modifizieren, und zusätzlich sich reproduzieren.
Ein Beispiel für einen Companion-Virus ist "Little Brother" oder
"ACME"
2.8 Trojanische Pferde, Dropper und Scherzprogramme
2.8.1 Trojaner (trojans)
Ein trojanisches Pferd (Trojaner) ist ein Programm, welches
vorgibt, zum einen eine nützliche Funktion zu haben, zum anderen
aber nach dem Aufruf eine unerkannte unzulässige Nebenwirkung
durchführen.
Die meisten Trojaner sind Programme, die unmittelbar nach der
Ausführung aktiv werden und z. B. die Platte formatieren oder
sonstwie Daten durcheinanderbringen (vgl. "Logische Bombe").
Trojaner haben nicht die Fähigkeit, sich zu vermehren, was sie
von Viren und Würmern unterscheidet, sind jedoch weitaus zer-
störerischer als die meisten Computerviren.
Trojanische Pferde haben oft einen einladenden Programmnamen
(ARJ, SCAN, LESBOSEX, MANDY, RUNME oder PORNO); vgl. auch
Namensvetter. Diese Programme sind sehr rar, es wurden erst
wenige Fälle weltweit bekannt. Trojanische Pferde sind meistens
in Hochsprache geschrieben und mit 'Online-Komprimierer' ge-
packt, um eine Analyse/Entdeckung zu erschweren!
2.8.1.1 Namensvettern (spoofing programs)
Namensvettern sind Trojanische Pferde, die durch ihren
Dateinamen den Anwender verleiten, das Programm auszuführen.
Beschreibung aller Virenarten und Virengattungen Seite: 20
Folgende Tabelle zeigt ein paar populäre Programme, die jedoch
Trojanische Pferde sind:
Flushot Version 4
Flushot Plus Version 1.3
Virus SCAN Versionen 51, 65, 68, 70 und
72
Tabelle: Einige Beispiele für Namensvettern
2.8.1.2 Dropper
Eine spezielle Art eines Trojaners ist ein Dropper (to drop =
fallen lassen). Ein Dropper, der meistens verschlüsselt ist, in-
stalliert einen Virus als Dateivirus oder überschreibt z. B. den
Bootsektor einer Diskette mit einen Bootvirus. Ein Dropper kann
sich nicht vermehren, jedoch der vom Dropper installierte Virus!
2.8.2 Logische Bomben (bombs)
Eine logische Bombe ist eine Spezialart eines Trojanischen
Pferdes. Logische Bomben sind lauffähige Programmteile, die in
einen nützlichen Code eingebettet sind und aus einem "Auslöser"
(engl. trigger) und einer "Nutzlast" (engl. payload) bestehen.
Ihre zerstörerischen Funktionen werden eine gewisse Zeit lang
überhaupt nicht aufgerufen. Später, wenn irgend eine Triggerbe-
dingung erfüllt ist (z. B. ist ein bestimmtes Datum erreicht
oder das Programm 100 mal aufgerufen wurde), "explodiert" die
Bombe und ruft ihre Zerstörungsfunktion auf.
Im erweiterten Sinn kann man auch den zerstörerischen Teil eines
Virus als logische Bombe bezeichnen, wenn der Virus auf die
Erfüllung seiner Triggerbedingung wartet, um dann aktiv zu
werden, z. B. Löschen von Programmen am Freitag, den 13 ten oder
wie beim Michelangelo Virus, das Formatieren der Festplatte am
6. März. Es gibt auch Trojanische Pferde und Viren, die harmlose
Programme so abändern, das aus diesen Programmen eine logische
Bombe wird! Beispiele hierfür sind mehrere MMIR-Viren.
2.8.2.1 Zeitbombe (time bomb)
Wird die Ausführung der logischen Bombe an eine Zeitbedingung
gekoppelt, spricht man auch von einer Zeitbombe.
Sharewareprogramme, die z. B. die 30 tägige Testphase erlauben,
haben so gesehen eine Zeitbombe einprogrammiert.
2.8.3 Scherzprogramme (jokes)
Sie sollen lediglich jemanden erschrecken und zur allgemeinen
Belustigung dienen, ohne schädlich zu sein (vgl. Trojaner) oder
sich selbst zu vermehren. Meist fängt der Computer nach dem Auf-
ruf eines Scherzprogramms irgendwann an, eine Melodie zu spielen
oder sonst etwas Ungewohntes auf dem Bildschirm anzuzeigen.
Scherzprogramme haben gemeinsam, daß sich das Computersystem
abnormal verhält, wenn ein Scherzprogramm aktiv ist (vgl.
Beschreibung aller Virenarten und Virengattungen Seite: 21
Softwareanomalien). Gerade Computerneulinge bekommen -bei
Aktivierung des Scherzprogrammes- einen gehörigen Schreck oder
richten in Panik und Unwissenheit sogar tatsächlichen Schaden
an. Ferner kann es durch unsaubere Programmierung des
Scherzprogrammes zu ungewollten Seiteneffekten kommen.
Es gibt jedoch auch Scherzprogramme, die von Hackern in Tro-
janischen Pferde umgewandelt wurden (z.B.: der SLOD-Trojan). Der
Cascade-Virus (Herbstlaub) entstand ebenfalls aus einem
Scherzprogramm, dem Programm "FALLDOWN".
2.9 Viren, die noch nicht aufgetreten sind
Der nachfolgende Abschnitt beschreibt einige "Virenarten", die
noch nicht entdeckt wurden oder einfach nur Mythen sind, die
sich hartnäckig halten.
2.9.1 Geisterviren
Geisterviren sind Viren, die von Antivirensoftware
fälschlicherweise gefunden werden.
Hierzu gibt es verschiedene Gründe:
+ Ein Virensuchprogramm hinterläßt seine Sucherkennungen un-
verschlüsselt im Speicher. Das Konkurrenzprodukt, welches die
gleichen Erkennungen verwendet, findet beim Durchsuchen des
Arbeitsspeichers jetzt einen "Geistervirus" (z. B. TSAFE, VSAFE
oder VDEFEND).
+ Ein Programm wurde mit einem selbstüberprüfenden Viren-
schutz versehen, der für ein Virensuchprogramm wie ein Virus
aussieht (z. B. TNT-Virus, F-XLOCK oder VSS). Gerade
regelbasierende Virensuchprogramme melden oft einen solchen
Selbstschutz als verdächtig an, weil dieser vom Codeaufbau
ähnliche Strukturen wie ein Dateivirus besitzt.
+ Wenn eine verseuchte Diskette unter DOS mittels des DIR
Befehles betrachtet wird: DOS speichert den Bootsektor der
zuletzt eingelegten Diskette aus Performancegründen im Ar-
beitsspeicher zwischen. Das Virensuchprogramm findet jetzt
einen Geistervirus im niedrigen Arbeitsspeicher, obwohl dieser
Virus tatsächlich nie aktiv ist, sondern nur im Diskettenpuffer
zwischengespeichert wurde! Beim nächsten Einlegen einer
virenfreien Diskette oder nach einem Kaltstart ist der Virus
durch die neuen Daten überschrieben worden.
2.9.2 "Hide and Seek" Viren
Das sind Viren, die sich nur eine gewisse Zeit innerhalb des
Systems aufhalten. Als Verstecke könnten beispielsweise die Puf-
ferbereiche intelligenter Terminals oder DFÜ-Einrichtungen die-
nen.
2.9.3 "Call" Viren
Diese Viren verändern unter Umständen nur ein einziges (!) Byte
am Wirtsprogramm. Der eigentliche Virus wird im Massenspeicher
abgelegt und wird lediglich durch den Aufruf des infizierten
Programms aktiviert. Der "Nachteil" dieser Art von Viren ist
aber, daß beim Fehlen des eigentlichen Virusprogrammes auf dem
Beschreibung aller Virenarten und Virengattungen Seite: 22
externen Massenspeicher die infizierten Programme nicht mehr
lauffähig sind! Eine Verwendung im PC-Bereich ist mir nicht
bekannt. Der weiter oben beschriebene DIR-II Virus (Cluster-
Virus) verwendet vom Prinzip her eine ähnliche Taktik!
2.9.4 Gepufferte Viren
Das sind Viren, die sich ins batteriegepufferte RAM einnisten
und ähnliche Eigenschaften wie Hardware Viren haben. Durch Ent-
fernen der Pufferbatterie sind diese Viren leicht zu entfernen!
Es muß jedoch damit gerechnet werden, daß sich die Viren von
infizierten Programmen aus beim erneuten Starten des Systems
wieder ins gepufferte RAM installieren. Ein typisches Beispiel
hierfür sind Viren für den Amiga.
Hinweis: Es herrscht oft die falsche Annahme, Viren könnten sich
im CMOS von PCs einnisten, was aber grundsätzlich falsch ist!
Das CMOS kann nur Daten speichern, jedoch keinen ausführbaren
Maschinencode!
2.9.5 Hardware Viren
Diese Art von Viren ist zur Zeit noch nicht existent, weil sie
nur durch Veränderung der Hardware ins System eingebracht werden
können. Beispiel: Austausch eines Boot-ROMs. Diese Art von Viren
ist zwar recht schwierig zu installieren, aber sehr effektiv, da
sie sehr schwer ausmachbar ist. Es muß jedoch beachtet werden,
das dies keine Softwaremanipulation ist, sondern eine
Hardwaremanipulation! Der Virus "BIOS Menegetis" ist von seiner
Eigenschaft am ehesten als Hardwarevirus einzuordnen.
2.9.6 "Virus Desinformaticus"
Die meisten Computeranwender sind schon einmal mit dem Thema
"Viren" über die Presse, durch den Rundfunk, von Freunden oder
auch durch entsprechende Software konfrontiert worden. Die
Medien verstehen es, dieses Thema publikumswirksam auf-
zubauschen, jedoch nutzbare Informationen werden selten
weitergegeben. Viel schlimmer noch, die meisten Anwender werden
dadurch regelrecht verunsichert. In unüberlegten Aktionen und
durch nicht vorhandenes Wissen werden mehr Daten, Zeit und
letztlich Geld zerstört, als es je ein Virus könnte. Viele
Benutzer wissen deshalb nicht, welche Folgen eine Vireninfektion
des Computers haben kann und wie sie sich bei einer Infektion
verhalten sollen oder sich davor schützen können. Deshalb ist es
bitter nötig, ein Bewußtsein für Viren unter den
Computeranwendern zu schaffen.
Für "Hygienehinweise" und Disziplinmaßnahmen zum Umgang mit
Computerviren sowie zur Auswahl von geeigneter Antiviren
Software möchte ich auf folgende Literatur verweisen: [Esch93],
[FAQG93], [FAQL92] und [PB92].
─══[ 3 VERSCHIEDENE "ATTRIBUTE" VON VIREN ]════════════════════─
In diesem Kapitel möchte ich die verschiedenen Attribute von
Computerviren näher erläutern. Komplexere Viren machen oft von
Beschreibung aller Virenarten und Virengattungen Seite: 23
mehreren Attributen Gebrauch, um sich dadurch erfolgreicher
vermehren zu können.
3.1 Unterscheidung nach Infektionsmechanismus
3.1.1 Direct action-Viren
Diese Virenart installiert sich beim Aufruf nicht resident im
Speicher, belegt also auch keinen Speicherplatz. Vielmehr
durchsucht der Virus direkt beim Ausführen die Laufwerke und
Verzeichnisse, für die er programmiert wurde, nach
Wirtsprogrammen und versucht, diese sofort zu infizieren. Man
unterscheidet grob folgende Suchverfahren:
+ im aktuellen Verzeichnis (current directory)
+ 'Dot Dot'-Methode (rekursiv im nächsthöheren Ver-
zeichnis -> CD ..)
+ über die Variable PATH
+ zufällige Verzeichniswahl
Danach läuft das Programm, welches eigentlich gestartet werden
sollte, ganz regulär ab. Solche Viren brauchen keine Inter-
ruptvektoren zu verbiegen und sind von einigen residenten
Wächterprogrammen, die nur Interruptvektoren kontrollieren oder
überprüfen, ob sich ein Virus im Speicher einnistet, nicht zu
entdecken. Sie verraten sich aber oft durch lange Zugriffszeiten
bei sonst recht schnell aufgerufenen Programmen, weil das Suchen
nach Wirtsprogrammen mitunter recht lange dauert. Oft haben
solche Viren überhaupt keine Fehlerbehandlung und fallen dann
auf, wenn z. B. ein Schreibschutzfehler bei schreibgeschützten
Disketten auftritt.
"Direct-action"-Infektoren können keine herkömmlichen Stealth-
Techniken ausnutzen, weil dazu der Virus resident im Speicher
sein muß. Die einzigen Stealthfunktionen, die solche Viren
tragen können, sind das Ausschalten von Wächterprogrammen, das
Benützen von SFT (s. u.) oder Tunneln. Beispiele für "Direct-Ac-
tion"-Viren sind der Vienna, Danish.Tiny und VBasic-Virus sowie
praktisch alle Viren mit einer Größe unter 180 Bytes. Solche
Viren sind relativ einfach zu programmieren, weshalb sie die
Mehrzahl der Viren darstellen!
3.1.2 Speicherresidente Viren (TSR)
Bei dieser Virengattung handelt es sich fast ausnahmslos um
Linkviren, die sich als TSR (TSR = Terminate but stay resident)
permanent im Speicher installieren und Funktionen von DOS
übernehmen, überwachen und entsprechend manipulieren oder um
Bootviren, die Sektorzugriffe manipulieren. Hierzu werden entwe-
der Interruptvektoren verbogen ("Interrupt-Hooking"), oder der
Virus deklariert sich als Bestandteil des Betriebssystems
selbst. Viren, die sich resident im Speicher befinden, können
ihre potentiellen Wirte auf wirkungsvollere Weise attackieren
als "Direct-action"-Infektoren, weshalb die bekanntesten Viren
fast alle speicherresident sind. So können sie z. B. gewisse
Stealth-Techniken ausnützen (siehe "Stealthviren"). Die meisten
warten nur darauf, daß der Anwender eine potentielle Wirtsdatei
startet, um sie im selben Moment zu infizieren. Oft wird dabei
der "Critical-Error-Handler" (Fehlerbehandlung) von DOS ersetzt,
Beschreibung aller Virenarten und Virengattungen Seite: 24
damit bei mißlungener Infektion (z. B. aufgrund eines Schreib-
schutzes bei Disketten) keine Fehlermeldung erscheint. TSR Viren
erzeugen meistens jedoch Nebeneffekte, weil diese Virenart mit
anderer Software interferiert.
3.1.2.1 Unterscheidung der TSR-Viren nach Speicherbelegungs-
strategien
Es gibt verschiedene Plätze im Speicher, in denen sich unter DOS
Viren einnisten. Folgende Bezeichnungen sind gebräuchlich:
+ TOM
+ Systemholes
+ MCB
+ HMA
+ UMB
3.1.2.1.1 TOM (Top Of Memory)
Diese Virengattung dekrementiert den TOM-Zeiger (TOM = Top Of
Memory, ist normalerweise 640 KB), der die Obergrenze des
konventionellen DOS-Speichers angibt, und installiert sich in
dem Bereich, der dann für DOS nicht mehr belegt wird. Diese
Technik wird von vielen Dateiviren (G2 & PS_MPC) und fast
ausschließlich von allen Bootviren verwendet (Ausnahmen:
Horse.Boot und Hybrid-Viren). Man erkennt den fehlenden Speicher
daran, daß beim CHKDSK für den "Konventionellen Arbeitsspeicher"
nicht mehr 640 KB (655360 Bytes), sondern ein niedrigerer Wert
angezeigt wird. Dies ist aber noch kein sicheres Zeichen für
eine Infektion, da manche Rechner diesen Bereich als BIOS oder
SCSI Stack-Bereich benutzen. Trotzdem sollte man in diesem Fall
sehr vorsichtig sein.
3.1.2.1.2 Systemholes (Systemlöcher)
Diese Virengattung sucht nach nicht verwendeten
Speicherbereichen im DOS-Kernel oder anderen residenten
Programmen (COMMAND.COM) und kopieren sich dort hinein. Diese
verändern die Größe des freien Speichers nicht, wodurch sie
schwierig zu finden sind. Solche Viren sind jedoch oft an eine
bestimmte DOS-Version gebunden. Viele, sehr kurze Viren nisten
sich auch in anderen Löcher des Arbeitsspeicher ein. Als
Beispiel sei hier der obere Teil der Interrupttabelle oder der
ungenutzte Videospeicher genannt.
3.1.2.1.3 MCB (Memory Control Blocks)
DOS verwendet intern MCB's zur eigenen Speicherverwaltung, die
auch vom Anwendungsprogramm angefordert werden können. Viren,
die MCB benützen, installieren sich als TSR im normalen Speicher
zwischen 0 und 640 KB. Diese kann man unter Umständen mit
Speicher-Map-Utilities wie z. B. MEM von DOS, Resident oder
MapMem entdecken. Fast alle Viren "entfernen" den anforderten
MCB aus der MCB-Kette und markieren diesen als DOS-Bestandteil,
um eine Entdeckung zu erschweren. Modernere Viren versuchen
jedoch einen MCB im hohen Speicher anzufordern (s.u.), der dann
über der magischen 640 KB Grenze liegt.
3.1.2.1.4 HMA und UMB
Eine weitere Möglichkeit für TSR-Viren ist, sich resident in
sogenannte UMBs (Upper Memory Blocks) oder in die HMA (High
Memory Area) zu installieren. Aus diesem Grunde sollte man diese
Speicherbereiche immer mituntersuchen lassen. Diese Methode wird
Beschreibung aller Virenarten und Virengattungen Seite: 25
immer beliebter, weil heute fast jeder Rechner über hohen
Arbeitsspeicher (HMA & UMB) verfügt.
3.2 Unterscheidung nach Infizierungsgeschwindigkeit
Man kann hier auch noch zwischen den Infizierungsarten un-
terscheiden, die sich dann in der Vermehrungsfreudigkeit des
Virus bemerkbar machen. Hinter der Infizierungsgeschwindigkeit
steht die "Philosophie" des Virenautors. Es wird grob zwischen
folgenden Arten unterschieden:
+ Normale Infizierung
+ Schnelle Infizierung
+ Langsame Infizierung
+ Spärliche Infizierung
Die Infizierungsgeschwindigkeit wird unabhängig von dem
Infektionsmechanismus betrachtet.
3.2.1 Normale Infizierung
Eine Infizierung erfolgt gewöhnlicherweise bei Programmaus-
führung12 oder beim Öffnen des Wirtes. Dies ist die gewöhnliche
Verbreitungsart der meisten Viren.
3.2.2 Schnelle Infizierung (Fast-Infector)
Es gibt Viren, die jede aus irgendeinem Grunde geöffnete13
ausführbare Datei infizieren oder z. B. schon beim Lesen eines
Verzeichnisses darin vorhandene Wirtsprogramme infizieren. So
infiziert der DIR-Virus Dateien nur bei Anwendung des DOS-
Befehles DIR oder der Lawine Virus zusätzlich bei einem Ver-
zeichniswechsel. Diese Virenart wird "Fast Infector", (schneller
Infektor) genannt, weil sie sich mit rasanter Geschwindigkeit in
infizierten Systemen ausbreitet. Durchsucht man zum Beispiel die
Platte mit einem Virenscanner, der den Virus nicht im Speicher
erkennt und den Suchvorgang daher nicht abbricht, so wird durch
das Scannen jede untersuchte Datei infiziert! Ein Beispiel für
einen "Fast Infector" sind der "Dark Avenger" (welcher der erste
war, der diese Technik verwendete), Frodo, DIR-II oder
"Tiny.CPP".
3.2.3 Langsame Infizierung (Slow-Infector)
Eine weitere Variante von TSR-Viren sind die "slow infectors",
die "langsamen Infektoren". Ihre große Gefahr liegt darin, daß
sie selbst einen ansonsten "narrensicheren" Schutzmechanismus
eines Integrität-Prüfers, eines Wächterprogrammes oder sogar den
eines Hardwareschutzes umgehen können. Diese Viren infizieren
eine Wirtsdatei nur dann, wenn der Benutzer absichtlich in diese
Datei schreibt, etwas löscht oder ein Programm z. B. durch
Kompilation neu erzeugt oder sonstwie modifiziert. Dadurch kön-
nen Veränderungen ausführbarer Dateien von Wächterprogrammen
nicht mehr als illegal erkannt werden, weil der Benutzer ja die
____________________
12Hierzu wird -unter DOS- meistens die EXEC-Funktion 21h/AH=4Bh
vom Virus kontrolliert.
13Der Virus kontrolliert hierzu die FileOpen-Funktion von DOS,
z. B. 21h/AH=6Ch oder AH=3Ch
Beschreibung aller Virenarten und Virengattungen Seite: 26
befallene Datei selbst verändert hat. Ein neuer Virentyp dieser
Gattung ist z. B. der "Objective"-Virus, der sich nur bei der
Erzeugung von COM Programmen aus Objektdateien vermehrt.
Anmerkung: Viele der EXE-Headerviren (s.o.) sind Slow-Infectors.
3.2.4 Spärliche Infizierung (Sparse)
"Slow Infectors" vermehren sich, wie der Name schon sagt, sehr
langsam. Dem Benutzer fällt somit das Vorhandensein eines Virus
im System deshalb kaum auf. Auch sind Viren so programmiert
worden, daß sie nur zu bestimmten Zeiten aktiv werden (z. B.
Infizierung nur an Sonntagen, nur im Herbst oder erst nach 17
Uhr usw.). Die Eigenschaft, sich nur zu bestimmten Ereignissen
zu vermehren, bezeichnet man als "Sparse". Ein Beispiel ist der
Toni Virus, der am Monatsersten nur Dateien infiziert, die mit
"A" anfangen, am zweiten Tag Dateien, die mit "B" beginnen usw.
3.3 Tarnkappenviren und Tarnmethoden
3.3.1 Stealthviren
Die Stealthviren gehören zur sogenannten 4. Generation der Viren
und stellen eine der gefährlichsten Gattungen dar.
Stealthviren werden oft auch als Tarnkappenviren bezeichnet,
weil er für den Anwender nicht sichtbar ist. Ein Stealthvirus
besitzt die Eigenschaft, sämtliche Dateizugriffe zu überwachen
und entsprechend zu manipulieren. Die Manipulation besteht auch
darin, beim Öffnen einer infizierten Datei den vom Virus infi-
zierten Programmteil herauszufiltern. Mittels dieser Taktik wird
selbst einem Virensuchprogramm eine unverseuchte Datei sugge-
riert, mit dem Ergebnis, daß kein Virus gefunden wird, wenn der
Stealthvirus aktiv ist. Man spricht hier von "Pure-Stealth"-
Viren (100% Stealthviren) und "disinfect on the fly" ("im
Vorbeiflug desinfizieren"). Ein Längenzuwachs infizierter Da-
teien mittels des DIR Befehles ist NICHT erkennbar! Stealthviren
sind typisch für das Betriebssystem DOS!
Es gibt Stealthviren, die Bootsektoren (z. B. Natas, Brain,
Stoned III), Partitionssektoren (z. B. Natas, Tequila, Parity
Check) und/oder Dateien (z. B. Natas, 4096, Holocaust, Tremor,
Neuroquila, Lockout oder Pure) befallen!
3.3.2 Dir-Stealthviren
Dir-Stealthviren14 sind meistens nicht -wie z. B. die Stealthvi-
ren- in der Lage, den Virencode aus dem Infizierten Programm
"herauszufiltern". Eine Längenänderung ist jedoch nicht er-
kennbar (z. B. mit DIR). Die sogenannten Slackbereichviren
(LeHigh & ZeroHunt) werden ebenfalls zu den Dir-Stealthviren
gezählt, weil für den Anwender ein Längenzuwachs NICHT erkennbar
ist! Der Unterschied besteht darin, daß mit einem
Checksummenprogramm bei aktivem Virus dieser erkannt wird,
während "echte" Stealthviren selbst Checksummenprogramme
umgehen! Beispiele: ZeroHunt, Diamond oder Dark Avenger III.
____________________
14Eine andere Bezeichnung ist auch FCB-Stealth
Beschreibung aller Virenarten und Virengattungen Seite: 27
3.3.3 Tunneln (Tunneling)
Mit "tunnelnden" Viren bezeichnet man eine Gruppe Viren, die
versuchen, residente Monitorprogramme (z.B.: SDRES oder VSAFE)
zu umgehen. Diese Monitorprogramme erkennen unter anderem, wenn
illegal Interrupts aufgerufen werden oder eine andere
virentypische Aktion durchgeführt wird und warnen dann den
Benutzer. Hierzu binden sie sich, ähnlich wie Viren, in die
überwachende Interrupts ein15. Anschließend warten auf einen
Interruptaufruf, den sie dann zurückverfolgen können. Ein
tunnelnder Virus verfolgt nun innerhalb des Speichers den Weg,
den ein Interruptaufruf nehmen würde, und sucht auf diese Weise
im BIOS bzw. im DOS-Kernel nach dem Anfang des Original-
Interrupthandlers. Hat er ihn gefunden, ruft er diese Adresse
direkt auf16. Dadurch wird das Wächterprogramm umgangen, und der
Virus hat sein Ziel erreicht. Der erste Virus, der diese Technik
verwendete, war der Yankee Doodle (1989), der damit das eigene
Wächterprogramm (VACSINE) des gleichen Autors umging!
Man kann sich diese Technik wirklich bildlich vorstellen: Um
eine Festung zu erstürmen, wird ein Tunnel gegraben, um dann von
innen angreifen zu können. Man kann also tunnelnde Viren im
weiteren Sinne zu den Stealthviren rechnen. Die meisten
Stealthviren verwenden deshalb auch diesen Techniken, um
Wächterprogramme umgehen zu können.
Diese Technik, das sogenannte "Interrupt Tracing", wird von
guten residenten Monitoren mittels spezieller Methoden ver-
hindert. Sehr viele jedoch können so umgangen werden. Neben dem
Interrupt Tracing gibt es weitere sehr effektive Tunneltricks.
Eine sehr fortgeschrittene Technik benützt das Programm MBR-
Kill, das eine sogenannte Emulation-Engine besitzt und damit
fast alle Programme und Viren umgehen kann, die das "normale"
Tunneln abfangen können! Weitere Techniken will ich hier noch
kurz erwähnen: die Benutzung eines undokumentierten Multiplex-
Aufrufes, der die Einsprungsadresse des original Disk-Interrupt-
Handlers im BIOS frei Haus liefert17, das Verwenden des von kaum
einem Monitorprogramm überwachten Dateihandles CON und das
Ersetzen des Block-Device-Treibers für die Laufwerke. Die
weiteren Methoden werden weiter unten detailliert beschreiben.
Anzumerken ist, daß auch viele Viren Monitorprogramme erkennen
können und teilweise deaktivieren oder entfernen. So werden z.
B. die Programme VSAFE & TSAFE von jedem besseren Virus deakti-
viert!
3.3.4 System File Table (SFT) Techniken
Wenn ein Virus versucht, ein Wirtsprogramm zu infizieren, so muß
er hierzu die Schreiberlaubnis besitzen. Dieser Umstand wird von
vielen Wächterprogrammen ausgenützt, um virentypische Aktionen
erkennen zu können.
____________________
15Meistens handelt es sich um die Interruptes 01h, 09h, 13h,
15h, 21h, 2Fh und 40h, siehe auch [Brow44].
16Siehe auch Anmerkungen zur Tunnelroutine des Programmes MBR-
Kill.
17Diese Technik benützt das Programm MBR-Kill ebenfalls!
Beschreibung aller Virenarten und Virengattungen Seite: 28
Es gibt jedoch einen Trick, solche Wächterprogramme zu umgehen,
indem die zu infizierende Datei im Lesemodus geöffnet wird und
intern (im Arbeitsspeicher) Systemdaten vom Virus so geändert
werden, daß der Zugriffsmodus auf "Schreiben" gesetzt wird. Dies
kann sehr elegant durch die sogenannten System File Tables von
MS-DOS erfolgen. Alle mir bekannten Wächterprogramme können so
umgangen werden! Ein weiterer "Vorteil" von der Verwendung von
SFT ist, daß einige Dateizugriffe vermieden werden können, was
zu einem sehr schnellen Infizieren führt!
3.3.5 Cavity Viren
Unter Cavity-Viren versteht man Viren, die in einem Wirt einen
Bereich suchen, der aus lauter gleichen Zeichen (in der Regel
Nullen) besteht. Wenn die Anzahl dieser Zeichen groß genug ist
(größer als die Virenlänge), kann der Virus, analog zu einem
Komprimierungsprogramm, diesen Bereich für seinen eigenen Code
nutzen.
Hierzu merkt sich der Virus das Zeichen und die Anzahl, wie oft
dieses Zeichen an dieser Stelle auftritt. Dann wird dieser
Bereich mit dem eigenen Viruscode überschrieben. Der Dateianfang
wird genauso manipuliert, wie bei normalen Dateiviren. Der
Unterschied zu Dateiviren besteht darin, das kein Code mehr an
den Wirt angehängt, sondern direkt in den Wirt hineingeschrieben
wird, ohne den Wirt aber dabei zu schädigen. Logischerweise
nimmt die Dateigröße des Wirtes bei dieser Infektionsart nicht
zu.
Man unterscheidet zwischen folgenden Cavity-Virengattungen:
+ Header-Viren
+ Zerohunting-Viren
+ Stackbereich-Viren
3.3.5.1 Header-Viren
1994 tauchte eine ganze Serie neuer Viren auf, die sich alle
folgender Technik bedienen: EXE-Programme haben oft hinter dem
eigentlichen Programmkopf (EXE-Header) einen Bereich von ca. 480
Bytes, der ungenützt ist und aus Nullen besteht. Die Header-
Viren überschreiben diesen Bereich mit ihrem Code. Um aktiv zu
werden. muß der EXE Programmkopf so abgeändert werden, daß der
Virus zuerst aktiv wird. Dies erfolgt meistens durch das
Überschreiben der "MZ"-Erkennung des EXE-Headers mit einen
Sprungbefehl (near jump) auf den Virus. Solch eine infizierte
Datei sieht jetzt für DOS wie eine normale COM-Datei aus, weil
der EXE-Header teilweise zerstört ist. Weil COM-Dateien maximal
64 KB groß sein dürfen, werden von dieser Virenart auch nur EXE-
Programme infiziert, die kleiner als 64 KB sind. Eine andere
Methode den Programmkopf abzuändern ist unter 4.) beschreiben.
Wird solch ein infiziertes Programm gestartet, wird dadurch der
Virus aktiv. Allen Header-Viren ist jedoch gemeinsam, daß es
keinen Programmzuwachs gibt, weil einfach Teile des Programmes
überschrieben wurden. Es gibt zur Zeit vier unterschiedliche
Methoden, wie der Virus das Originalprogramm wiederherstellt und
startet:
. Relocation des EXE-Programmes durch den Virus mit
anschließendem Start (z. B. BootEXE-Virus).
Beschreibung aller Virenarten und Virengattungen Seite: 29
. Installieren eines speicherresidenten
Disketteninterrupthandlers, der bei Lesezugriffen den Virus
herausfiltert und bei Schreibzugriffen geeignete Programme
infiziert (siehe auch "Slow Infector"). Danach versucht der
Virus, das Programm neu zu starten. Weil der
Disketteninterrupthandler aktiv ist, wird der Virus beim
Startvorgang herausgefiltert und das Programm scheint
unverseucht zu sein. Solche Viren haben durch die verwendete
Methode 100-prozentige Tarnkappeneigenschaften. Diese Methode
wird von mehreren Viren verwendet, z.B. Pure, XYZ, Cluster oder
Skid_Row.
. Eine weitere Methode ist, beim Programmstart den Master
Boot Record der Festplatte mit dem Virus zu infizieren und
anschließend das System neu zu booten. Der Virus wird nun als
erstes Programm aktiv und kann die gleichen Tarnmethoden wie
unter 2.) beschrieben verwenden. Startet man ein verseuchtes
EXE-Programm, wird der Virus beim Laden herausgefiltert, d.h.
es liegt das original Programm vor, der Virus wird gar nicht
mehr ausgeführt. Das besondere an diesem Virus ist, daß er
multipartite ist, d.h. er infiziert Programme, also auch den
Master Boot Record der Festplatte. Zusätzlich hat solch ein
Virus hervorragende Tarnkappeneigenschaften. Ein Beispiel ist
hierfür der Lockout Virus, der insgesamt nur 331 Bytes lang
ist!
. Eine weitere Möglichkeit besteht darin, den EXE-Kopf intakt
zu lassen und nur dessen Einsprungsadresse auf den Virus
umzubiegen. Durch diese Taktik können auch EXE-Dateien größer
als 65 KB infiziert werden! Bei Programmausführung installiert
der Virus einen INT 13h-Handler der den Virus bei Lesezugriffen
herausfiltert. Anschließend versucht der Virus das Programm neu
zu starten. Weil der Disketteninterrupthandler aktiv ist, wird
der Virus beim Startvorgang herausgefiltert und das Programm
scheint unverseucht zu sein.
3.3.5.2 Stackbereich Viren und "Zerohunting"
Es gibt auch Stackbereich-Viren, die sich -ähnlich den Header
Viren- in ungenutzten Programmteilen aufhalten und diese über-
schreiben, weshalb auch eine Längenänderung nicht auftritt!
Solche Viren suchen innerhalb von Wirtsprogrammen nach Ketten
gleicher Zeichen (gewöhnlich nach Nullen, z. B. Stackbereich des
Programmes) und überschreiben diesen Bereich, wenn er lang genug
ist, mit ihrem Code. Hierzu zählen u. a. die Viren
+ LeHigh (im Stackbereich des Programmes COMMAND.COM)
+ ZeroHunt und Darth Vader (in COM Dateien)
Da diese Bereiche vom Virus anschließend wieder mit Nullen
aufgefüllt werden, sind fast keine Symptome zu erkennen. Heute
sind jedoch fast alle Programme komprimiert, weshalb
Stackbereichviren fast keine potentielle Wirte mehr finden!
3.3.6 Slackbereich Viren
Die Slack-Area ist der Bereich des letzten Clusters eines
Programmes, der nicht mehr vom Programm belegt wird. Bei
größeren Festplatten ist somit die Slack-Area 4 KB und größer.
Diese Virengattung ist sehr hinterhältig, weil sie sich nur sehr
schwer entdecken läßt und zudem weil sie äußerst destruktiv ist.
Die Wirkungsweise ist folgende:
Beschreibung aller Virenarten und Virengattungen Seite: 30
Der Virus kopiert sich hinter den Wirt in die sogenannte Slack-
Area, ohne jedoch die Länge des Wirtes zu ändern. Diese Methode
wurde jedoch noch nicht in existierenden Viren gefunden! Eine
andere Methode ist es, den Anfang des Wirtes in die Slack-Area
zu kopieren (zu sichern) und den Wirt mit dem Viruscode zu über-
schreiben. Beim Start des Virus lädt dieser die entsprechenden
fehlenden Programmteile nach. Beispiel: Number of the Beast
(666).
Eine Längenänderung des befallenen Programmes ist also aus Sicht
des Virus nicht nötig, weshalb z. B. Integritätsprüfer diesen
Virus nur bei eingeschalteter Checksumme findet. Diese Viren
sind nicht ungefährlich, weil sie in vielen Fällen zerstörte
Programme und querverkettete Dateien ("cross linked files")
erzeugen. Ist die Slack-Area eines Opfers nämlich zu klein für
den Virus, so belegt dieser auf dem Medium auch noch den näch-
sten Sektor, ohne daß dafür jedoch ein Eintrag in die FAT
erfolgt. Ist oder wird dieser Sektor nun legitimerweise von
einer anderen Datei belegt, so entsteht ein querverketteter
Sektor, und das Wirtsprogramm ist nicht mehr startfähig, da der
Viruscode überschrieben wurde. Hängt der Virus sich jedoch vor
den Wirt, so ist das Ende des Wirtes zerstört (z.B.: Number of
the Beast)! Weil die Länge des Wirtes nicht angepaßt wird, wird
bei einem einfachen Kopieren auch nicht die Slack-Area mitko-
piert, was wiederum zum Abscheiden von Virus- oder Programmcode
führt.
Aus diesen Gründen sind Slackbereich-Viren nicht weit
verbreitet. Der einzige lauffähige Slackbreich-Virus ist der
Virus "Number of the Beast (666)". Es gibt noch einen weiteren
Slackbreich-Virus, nämlich den Virus "Assassin", er ist jedoch
nicht lauffähig!
3.3.7 "Live and Die" Viren
Unter "Live and Die" - Viren versteht man Viren, die sich nur
für eine bestimmte Zeit in einem Programm aufhalten. Nach Ablauf
eines Zeitraums entfernt sich der Virus selbständig aus dem
befallenen Programm. Das Programm ist meist nach der selb-
ständigen Entfernung noch lauffähig, unter Umständen sogar wie-
der im Originalzustand! Aktive Stealthviren kann man im weiteren
Sinne zu den "Live and Die" Viren rechnen. Der Pure und Goldbug
Virus dürfte diese Definition erfüllen, weil er sich teilweise
selbst wieder entfernt, und eine weitere Infizierung des Wirtes
unterläßt.
3.3.8 Armored (Gepanzert)
Eine immer beliebtere Technik ist, daß sich Viren vor Analyse
oder Entschlüsselung selbst schützen. Dadurch soll den
Antivirenforschern das Analysieren des Virus erschwert werden,
was dazu führt, daß das Entwickeln entsprechender
Antivirensoftware verzögert wird. Durch diese Techniken können
auch viele Virenscanner ausgetrickst werden, die anhand von
regelbasierenden Modulen (AVR-Modulen18) Verschlüsselungs-
routinen erkennen können.
____________________
18AVR = Algorithmic Virus Recognition.
Beschreibung aller Virenarten und Virengattungen Seite: 31
3.3.9 Hardware Stealthtechniken
Inzwischen sind drei Methoden bekannt geworden, wie sich Viren
mittels Hardwareeigenschaften Stealthtechniken zunutze machen.
3.3.9.1 Floppy Disc Boot Simulation
Das CMOS der modernen PCs enthält Informationen, in welcher
Reihenfolge gebootet werden soll (A:;C: oder C:;A:). Ein Virus
kann diese Reihenfolge jedoch zu seinen Gunsten abändern, z. B.
der ExeBug-Virus.
Der Virus (Bootvirus) hat schon die Festplatte infiziert und
meldet durch eine bestimmte Technik die Bootsequenz so um, daß
zuerst von der Festplatte und dann erst von der Diskette
gebootet wird. Versucht nun der Anwender, von der Diskette
hochzubooten (in der Absicht eventuelle Viren zu deaktivieren),
wird zuerst der Virus von der Festplatte aktiviert. Der Virus
schaut nun nach, ob im Laufwerk eine Diskette eingelegt ist und
bootet gegebenenfalls von dort weiter. Weil der Virus zusätzlich
Sektor-Stealthtechniken verwendet, ist der Virus nach dem
"erfolgreichen" Booten von der Diskette nicht zu erkennen.
Es gibt inzwischen schon zwei verschiedene Techniken, um diesen
Effekt zu erreichen:
+ Ummelden der Bootsequenz im CMOS
+ Andauerndes An- und Abmelden des Laufwerkes im CMOS (diese
Technik verwendet z. B. der ExeBug-Virus).
3.3.9.2 Hardware Level stealth
Das ist ein anderer neuer Trick, der in zwei existierenden Viren
gefunden wurde (Strange und MegaStealth). Der Virus fängt das
"Device Ready" Signal des Disk Kontrollers ab, wenn ein
Festplattenzugriff erfolgen soll (ATs) oder erfolgt ist (XTs).
Anschließend manipuliert der Virus den Puffer, der
gelesen/geschrieben werden soll zu seinen Gunsten. Selbst ein
Wächterprogramm oder sogar ein Hardwareschutz, der die unterste
Ebene, nämlich die Festplattenzugriffe kontrolliert, kann so
umgangen werden.
3.3.9.3 Flash-BIOS stealth
Neuere Computer haben unter Umständen ein sogenanntes Flash-BIOS
integriert19, das durch Softwarebefehle beschreibbar ist. Das
normale BIOS ist im Gegensatz zum Flash-BIOS nicht beschreibbar.
Ende 1994 tauchte ein neuer Bootvirus auf (BIOS Menegetis), der
sich in das Flash-BIOS einnistet, den Bootinterrupt auf sich
selbst umsetzt und Schreibzugriffe auf das Flash-BIOS abblockt.
Anschließend infiziert der Virus die Festplatte. Danach verhält
sich dieser Virus wie ein "normaler" Bootvirus, d. h. er infi-
ziert alle Disketten, die nicht schreibgeschützt sind. Wenn der
Virus von der Platte entfernt wurde, wird beim nächsten
Bootvorgang der Virus aus dem Flash-BIOS wieder aktiviert und
infiziert sofort wieder die Festplatte! Weil der Virus
Schreibzugriffe auf das Flash-BIOS blockiert, kann der Virus
nicht ohne weiteres aus dem Flash-BIOS entfernt werden!
____________________
19Vor allem neuere Pentium- und 486 DX/2-Motherboards sind mit
Flash BIOS ausgerüstet.
Beschreibung aller Virenarten und Virengattungen Seite: 32
Erst Anfang Juni 1996 wurde bekannt, das die API, die der Virus
"BIOS Menegetis" verwendet gar nicht existierte, d.h. der Virus
wurde selbst von seinem Autor nicht auf Lauffähigkeit getestet.
Es ist jedoch bemerkenswert, daß Virenprogrammier jede Schwach-
stelle von Betriebssystem und BIOS ausnützen, um den Virus noch
bessere "Überlebenschancen" und Tarnkappeneigenschaften
mitzugeben.
3.3.10 Abhilfe bei Stealthviren
Meistens sind die Viren im Arbeitsspeicher unverschlüsselt und
können so erkannt werden. Die meisten Stealthviren besitzen
folgenden 'Fehler': Der DOS-Befehl CHKDSK zeigt bei einem
aktiven Virus pro infizierter Datei einen oder mehrere verlorene
Cluster zu der infizierten Datei an. Diese Cluster dürfen jedoch
erst mit dem Befehl CHKDSK /F beseitigt werden, wenn der Virus
entfernt wurde!
3.4 Verschlüsselte und polymorphe Viren
Verschlüsselung ist die umkehrbare Umwandlung einer
Informationsdarstellung in eine andere, die keine Rückschlüsse
mehr auf den ursprünglichen Inhalt erlaubt. Verschlüsselung wird
verwendet, damit keine virentypischen Texte im Viruscode
auftauchen und damit regelbasierende Virenscanner keine
verdächtigen Befehle finden. Die Routine, die den
verschlüsselten Virus wieder entschlüsselt, wird als "Decryptor"
bezeichnet.
Polymorphe Viren sind Viren, die verschlüsselt sind. Im
Gegensatz zu den meistens verschlüsselten Viren, die eine
konstante Ent- und Verschlüsselungsroutine besitzen (und somit
anhand ihrer Entschlüsselungsroutine erkannt werden können), ist
die Entschlüsselungsroutine bei polymorphen Viren überhaupt
nicht mehr konstant. Oftmals sind nur noch drei Bytes
'Programmskelett' konstant, der Rest ist oft mit sinnlosen
Maschinenbefehlen aufgefüllt. Deshalb stellt diese Virenart -wie
die Stealthviren- eine ernstzunehmende Gefahr dar, weil sie
teilweise nicht mehr erkannt wird. So kann z. B.:
1 + 1 = 2 auch durch 1 - (-1) = 2
ausgedrückt werden. Gerade im Computerbereich gibt es zig
Möglichkeiten, eine logische Aktion durch verschiedenste Al-
gorithmen zu programmieren.
Manche Viren verwenden auch verschiedene Verschlüs-
selungsmethoden (SUB/ADD, NOT, XOR oder Negieren), damit gewähr-
leistet ist, daß jedes infizierte Programm anders aussieht. Eine
Suche nach derart komplex verschlüsselten Viren:
+ ist sehr zeitaufwendig
+ benötigt einen komplexen Suchalgorithmus
+ ist meistens anfällig für Fehlalarme
+ benötigt Erfahrung: Es ist oft sehr schwer, eine
verläßliche Suchroutine für polymorphe Viren zu
programmieren.
Beschreibung aller Virenarten und Virengattungen Seite: 33
3.4.1 Mutation
Unter Mutation versteht man die selbständige Veränderung des
Virus während seiner Reproduktion. Polymorphe Viren sind im
höchsten Maße mutierend.
Es gibt polymorphe Viren, bei denen kein einziges Byte mehr
konstant ist. Solche Routinen, die das Ver- und Entschlüsseln
durchführen und teilweise als eigenständige Programmbibliotheken
vorliegen (Virenbaukästen), werden auch "Mutation Engines"
genannt. Beispiele: MtE (Mutation Engine), TPE (TridenT
Polymorph Engine), NED (Nuke Encryption Device), DAME (Dark
Angel's Mutation Engine), DSCE (Dark Slayer Confusion Engine)
oder DSME (Dark Slayer Mutation Engine). Diese Liste ist noch
nicht vollständig, die o. g. Mutation Engines sind jedoch die
bekanntesten20.
Solche polymorphen Viren werden von Scannern nicht mehr mit
festen Bytefolgen oder Platzhaltern gesucht, sondern mit Hilfe
von algorithmischer Untersuchung (AVR-Module). Das untersuchte
Programm wird deshalb auf Techniken hin untersucht, die ein-
deutig von diesen polymorphen Viren stammen. So muß jede
Verschlüsselung einen Schlüssel, den Startbereich und Endbereich
und eine Entschlüsselungsvorschrift besitzen. Werden diese
Codierungstechniken in einem Programm entdeckt, so spricht der
Virenscanner an. Jedoch ist es extrem schwer, Algorithmen zu
schreiben, die wirklich jeden Aspekt eines polymorphen Virus
abdecken. So ist es auch nicht hundertprozentig sicher, ob ein
Virenscanner wirklich alle erzeugten Mutationen eines Virus
überhaupt aufspüren kann. Teilweise ist es noch nicht einmal
möglich, hierfür einen mathematischen Beweis zu erbringen!
3.4.2 Verschiedene Arten von Polymorphismus
Zur Zeit teilt man polymorphe Viren in sechs verschiedene
Klassen ein, die sich dadurch unterscheiden, wie hochgradig ein
Virus mutiert [Bont94]. Die TPE ist z. B. eine der besten
Mutation Engines, sie wird deshalb zur Klasse 5 gezählt. Die mit
der TPE erzeugten Viren sind in ihrem Aussehen so variabel, daß
fast jeder herkömmliche verschlüsselte Virus eine Untermenge der
TPE darstellt.
3.4.2.1 Oligomorph
Die erste Art des Polymorphismus: Der Virus benützt eine
begrenzte Anzahl (mehrere) von konstanten Decryptoren, die
ebenfalls mit einer konstanten Anzahl von Sucherkennungen
erkannt werden. Beispiele hierfür ist der Whale-Virus der
insgesamt 34 Decryptoren verwendet. Will ein Virensuchprogramm
den Whale-Virus sicher entdecken, muß es hierfür 34
Sucherkennungen verwenden! Weitere bekannte Viren sind: Cheeba,
Marauder, Screaming_Fist, Slovakia und V-Sign (Cansu).
3.4.2.2 Weitere Arten von Polymorphismus
Die zweite Klasse unterscheidet sich von der ersten Klasse
dadurch, daß der Decryptor zwar jedesmal die gleichen Befehle
verwendet, deren Reihenfolge jedoch willkürlich angeordnet sein
kann. Beispiel hierfür HWF oder WordSwap.
____________________
20Weitere Mutation Engines sind: PME, SPE, GCAE, ViCE oder GPE.
Beschreibung aller Virenarten und Virengattungen Seite: 34
Von der dritten Klasse spricht man, wenn zwischen den einzelnen
Befehlen des Decryptors sinnlose Befehle eingefügt werden.
Beispiele hierfür Tequila oder Flip-Virus.
In der vierten Klasse werden dann noch zusätzlich die Befehle
zufällig vertauscht, die den eigentlichen
Entschlüsselungsvorgang nicht beeinflussen.
Die fünfte Klasse faßt alle bisherigen Klassen zusammen. Diese
Art von Polymorphismus stellt alle Entwickler von
Virensuchprogrammen vor große Probleme, weil solche Viren nicht
mehr zuverlässig erkannt werden können. Ein Ausweg aus diesem
Dilemma ist, daß das Virensuchprogramm den Virus entschlüsselt,
indem es den Decryptor des Virus selbst verwendet. Das heißt es
muß in einer kontrollierten Umgebung der Decryptor des Virus
solange schrittweise ausgeführt werden, bis sich der Virus
selbst entschlüsselt hat! Beispiele hierfür sind fast alle
Viren, die mit einer Mutation-Engine "arbeiten".
3.4.2.3 Zerstückelt (Permutating)
Die sechste Art des Polymorphismus: Diese Technik besteht darin,
. den eigenen Virencode in kleinere Stücke zu zerteilen und
diese wahllos im Wirt unterzubringen. Es muß nur noch eine
Routine hinzugefügt werden, die den Virus beim Starten wieder
korrekt zusammenfügt.
. daß der Virus sich irgendwo im Wirt unzerstückelt un-
terbringt und mehrere (polymorphe) Lademodule in den Wirt
einfügt, die nichts anderes tun, als bestimmte Register zu la-
den (z. B. sinnlose Befehle) und zum nächsten Lademodul
springen.
. daß die Entschlüsselungsroutine des Virus irgendwo im Wirt
über mehrere (polymorphe) Lademodule verteilt im Wirt abgelegt
wird, welche nichts anderes tun, als bestimmte Register zu la-
den und zum nächsten Lademodul zu springen, um in solch einer
Schleife den eigentlichen Virus zu entschlüsseln.
Das Problem liegt darin, daß sämtliche herkömmlichen
Scannertechniken (Anfang und Ende scannen und Entrypointtracing)
hier versagen; der Scanner muß die ganze Datei durchsuchen, was
zu Fehlalarmen und Geschwindigkeitseinbußen führt.
Kurz nachdem ich diese Beschreibung fertig gestellt hatte,
tauchte der erste polymorphe, permutierende Virus auf (One_Half,
Hybrid-Virus mit Stealtheigenschaften). Dieser Virus hat die
komplette Entschlüsselungsroutine (die zusätzlich polymorph ist)
wahllos im Wirt untergebracht und mittels Sprüngen "verbunden".
Meines Erachtens ist es fast nicht mehr möglich, solche Viren
mit irgendeiner Art von herkömmlichen Scanalgorithmen zu finden,
geschweige denn den Virus zu entfernen.
Die einzige verläßliche Möglichkeit ist es, den Virus im
Arbeitsspeicher Schritt für Schritt abzuarbeiten (Codeablauf
simulieren oder debuggen), bis er sich selbst entschlüsselt hat.
Ist er erst mal entschlüsselt, kann man solche Viren mit einem
einfachen Suchmuster erkennen oder mit einem geeigneten Programm
entfernen. Dies ist einfacher gesagt als getan: Der Versuch, den
Virus One_Half von Hand mit einem Debugger zu entschlüsseln,
kann eine echte Geduldsprobe werden.
Beschreibung aller Virenarten und Virengattungen Seite: 35
Die nachfolgenden zwei Grafiken sollen veranschaulichen, wie die
oben beschriebenen unterschiedlich permutierenden Viren
funktionieren.
Wirtsprogramm V W V W V
■ Virus
■ V W V Virus Wirtsprogramm V W
Abb.: Infektionsmechanismus von permutierenden Viren
Weitere permutierende Viren sind: Bad_Boy, Fly, Leech oder
Commander Bomber.
Einen ähnlichen Infektionsmechanismus wie permutierende Viren
hat die Uruguay-Virus Familie. Die Mutation Engine dieser Viren
hat Polymorphismus der fünften Klasse und wird einstimmig von
Virenexperten als die zur Zeit leistungsfähigste Mutation Engine
bezeichnet. Der Virus kann COM Dateien infizieren. EXE-Dateien,
die kleiner als 65 KB sind wandelt der Virus zuerst einmal in
COM-Dateien um. Anschließend wird die Mutation-Engine dazu
verwendet einen Sprung zu verschlüsseln, der den eigentlichen
Decryptor des Virus am Dateiende anspringt.
Der am Anfang eingefügte Sprung besteht nicht aus einem
"einfachen" Sprung sondern kann auch direkt, über Register oder
auch indirekt ausgeführt werden. Alleine um den Sprung zu
erzeugen, erzeugt der Virus Decryptoren oder fügt sinnlose
Maschienenbefehle von bis zu 200 Bytes Länge ein. Das Problem
für alle Virensuchprogramme ist, sie den Sprung auflösen müssen
um den eigentlichen polymorphen Decryptor ermitteln zu können.
Weil der Virus hochpolymorph ist und dadurch Decryptoren mit
unterschiedlicher Länge erzeugt, kann das Suchprogramm auch
nicht einfach hingehen und den Decryptor am Dateiende suchen.
variabler Sprung
Wirtsprogramm Virus
Abb.: Infektionsmechanismus der Uruguay-Virusfamilie
Beschreibung aller Virenarten und Virengattungen Seite: 36
3.4.3 Slow Mutating (Langsames Mutieren)
Um den Antivirenforschern das Leben schwer zu machen, mutieren
manche Viren nur sehr langsam. Es ist extrem schwierig, alle
möglichen Varianten zu erzeugen, was dazu führt, daß der ganze
Virus analysiert werden muß. Ein Beispiel ist der Tremor-Virus,
der für sein Mutieren computerspezifische Parameter verwendet.
D. h. solch ein Virus muß auf den verschiedenen Testmaschinen
ausgetestet werden. Der Effekt beim Tremor-Virus war, daß die
erste Scannergeneration nicht alle Tremorvarianten entdecken
konnte, was zu einer weiteren Verbreitung führte.
3.5 Retroviren
Retroviren sind Viren, die gezielt Antivirenprogramme aus-
schalten, angreifen oder deren Funktion einschränken. Retroviren
sind auch als Anti-Anti Viren bekannt. Folgende Techniken sind
erwähnenswert (siehe auch [FBul216]):
+ Modifizieren des Antivirenprogrammes auf dem Datenträger
oder im Arbeitsspeicher (vgl. Trojanische Pferde).
+ Das Erkennen von Speicherwächtern und deren Deaktivierung
oder das Ausschalten von Virenfunktionen, damit der
Speicherwärter nicht mehr anspricht.
+ Das Benützen von Hintertüren oder Fehlern gewisser
Antivirenprogramme.
+ Löschen oder Verändern von wichtigen Dateien, die zum
Antivirusprogramm gehören, z. B. Checksummendateien.
+ Das Verwenden von Codesequenzen im Viruscode, die für
Antivirenprogramme problematisch sind.
+ Das Verursachen von Fehlalarmen.
+ Verwendung von Techniken, die das Erkennen, Entfernen oder
Identifizieren des Virus erschweren (vgl. polymorphe Viren,
Stealthviren, "Sparse" und "Armored").
Es sind Viren bekannt, die z. B. Checksummendateien gewisser
Antivirenprogramme derart manipulieren, daß eine Infektion nicht
mehr bemerkt wird. Fast jeder moderne Virus kann heute den
Speicherwächter VSAFE.COM, welcher zum Lieferumfang von MS-DOS
6.xx gehört, deaktivieren. Hierzu reicht ein 8 Byte großes
Programm namens "VSLAY.ASM" das unter Virenprogrammieren weit
bekannt ist. Viele Viren stoppen die Ausführung von
Antivirenprogrammen, was die Entdeckungswahrscheinlichkeit eher
erhöht. Oder sie unterlassen gerade aus diesem Grund das
Infizieren solcher Programme. Der Virus Mirror läßt alle
Programme als infiziert erscheinen: Falls versucht wird, den
Virus zu entfernen, werden uninfizierte Programme zerstört!
Diese Aufzählung könnte beliebig fortgesetzt werden.
─══[ 4 ZUKÜNFTIGE BETRACHTUNGEN ]══════════════════════════════─
Computerviren sind die erste und bis jetzt einzige Form von
künstlichen Leben, die einen nachweisbaren Eindruck bei der
Bevölkerung hinterlassen haben. Zur Zeit sind Computerviren noch
eine "lästige" Begleiterscheinung, die noch einigermaßen be-
Beschreibung aller Virenarten und Virengattungen Seite: 37
herrscht werden kann. Daß dies jedoch in Zukunft nicht mehr so
sein wird, möchte ich im folgenden erläutern.
4.1 Trends in der Virenentwicklung
Die Qualität der neu auftauchenden Viren (Hybrid-, Stealth- und
polymorphe Viren) hat zwischenzeitlich sehr stark zugenommen,
eine Entfernung stellt den Anwender deshalb oft vor nicht mehr
überwindbare Hürden. Durch die internationale Vernetzung ver-
breiten sich die Viren jetzt auch viel schneller als in den
vergangenen Jahren.
Von vielen "alten" Viren tauchen modifizierte Varianten auf, die
oft so verändert wurden, daß sie nicht mehr von einem
Virensuchprogramm erkannt werden. Die Rate neuer Viren hat in
den letzten Jahren stetig zugenommen, es herrscht zur Zeit fast
eine exponentielle Verdopplung der neu gefundenen Viren (siehe
auch [Keph94]). Laut [Keph94] dürfte dann die Anzahl der
gefunden Computerviren für MS-DOS im Jahre 2000, etwa 10
Millionen erreichen, was ich aber eher für unwahrscheinlich
halte.
Zur Zeit werden täglich zwei bis drei neue Viren für das
Betriebssystem MS-DOS gefunden! Die Hersteller von
Antivirenprogrammen kommen zur Zeit kaum nach, alle neuen Viren
zu erfassen, ein paar kleinere Hersteller sind deshalb auch
schon "auf der Strecke geblieben".
4.1.1 Virenkits und Mutation Engines
Die "Profis" unter den Virenschreibern programmieren nicht mehr
Viren, sondern Virenkits oder Mutation Engines.
Virenkits ermöglichen es auch dem blutigen Anfänger verschiedene
lauffähige Viren bzw. compilierbaren Assemblerquellcodes zu
erzeugen. Das Fatale daran ist, daß jeder Virus anders aussieht
und sich auch anders verhält. Der Benutzer kann auch den er-
zeugten Quellcode ändern, modifizieren oder erweitern, um eine
eventuelle Entdeckung durch Virenscanner zu vermeiden. Zur Zeit
existieren über 30 verschiedene Virenkits! Es existieren z. B.
von den bekanntesten Virenkits schon mindestens 500 verschiedene
Viren, welche teilweise hervorragend programmiert sind.
Ein weiterer Trend sind polymorphe (polymorph = vielgestaltig)
Viren, die in den letzten zwei Jahren sprunghaft zugenommen
haben. Polymorphe Viren sind so komplex verschlüsselt, daß sie
teilweise nicht mehr mit einem Virensuchprogramm erkannt werden
können!
Jeder Virenschreiber, der etwas auf sich hält, "muß" eine
Mutation Engine programmiert haben. Seit "Dark Avenger" als
erster seine MtE veröffentlicht hat, gibt es eine Flut von
Mutation Engines, die oft als Objectfile verteilt werden. Wie
schon unter "polymorphe Viren" erwähnt, wird es immer
schwieriger, Erkennungsroutinen für polymorphe Viren zu
entwickeln, die zuverlässig sind.
Es ist auch schon vorgekommen, daß einfach eine neue Mutation
Engine zu einem alten Virus hinzugefügt wurde. So entstand z. B.
Beschreibung aller Virenarten und Virengattungen Seite: 38
aus dem CoffeeShop-Virus der MtE:CoffeeShop und aus diesem der
TPE:CoffeeShop.1_0a. Aus dem TPE:CoffeeShop.1_0b-Virus entstand
dann die TridenT Polymorph Engine (TPE.1_1), eine weitere
Mutation Engine.
4.1.2 Multipartite Viren
Ein weiterer Trend sind Multipartite- oder Hybrid-Viren mit
Stealtheigenschaften, die sowohl Dateien als auch Bootsektoren
und/oder Masterbootrecords infizieren. Da solche Viren schon zum
Zeitpunkt des Bootens aktiv werden, können sie sehr schwer ent-
deckt und entfernt werden. Zusätzlich ist diese Virenart extrem
virulent, weshalb sich ein Hybrid-Virus wie z. B. Natas oder
Junkie innerhalb von ein paar Wochen weltweit verbreitet.
Zusätzlich sind die meisten Hybrid-Viren verschlüsselt,
teilweise sogar polymorph. Der Tequila- und Flip-Virus (ca.
1992) waren die ersten "richtigen" polymorphen Hybrid-Viren mit
minimalen Stealtheigenschaften, die sich rasant vermehrten und
deshalb wahrscheinlich viele Nachahmer fanden. Für die
Antivirenforscher ist es zudem mühsam, solch einen Virus zu
analysieren, den sie haben ohne weiteres eine Größe von 3 bis 6
KB (teilweise sogar 8 bis 10 KB), was ungefähr 40-120 Seiten
disassemblierten Assembler-Code entspricht!
4.1.3 Devicetreiberviren unter Windows
Unter Windows gibt es die Möglichkeit, sogenannte Gerätetreiber
(Devicedrivers oder Devicetreiber) für Windows zu programmieren.
Dies geht relativ einfach mit dem SDK21 für Windows. Diese
Devicetreiber können, nach Einbindung in Windows, sämtliche
Dateizugriffe überwachen - und entsprechend manipulieren. Wenn
man sich den Clustervirus DIR-II22 anschaut, der sich innerhalb
kürzester Zeit weltweit verbreitet hat, kann man sich
vorstellen, wie effektiv sich ein solcher Windows Devicetreiber-
Virus verbreiten könnte. Anscheinend ist noch niemand auf diese
Idee gekommen oder es fehlt immer noch an genügend
Hintergrundwissen, solch einen Virus zu entwickeln. Vielleicht
liegt es auch an der Tatsache, daß das SDK relativ teuer ist,
und deshalb nicht von Virenprogrammiern verwendet wird.
Meiner Meinung nach, könnte 1995 das Jahr sein, in dem eine Flut
von Windowsviren auftauchen könnte. Der Hintergrund: Viele
Virengruppen sind nicht mehr daran interessiert die hundertste
gehackte Variante vom xyz-Virus zu veröffentlichen. Die Pro-
grammierung von einem Windowsvirus ist hier noch eine echte
Herausforderung23. Den gleichen Trend gibt es zur Zeit bei
Mutation Engines und Hybridviren, der hoffentlich in nächster
Zeit wieder abflacht.
____________________
21 SDK = Software Developper Kit von Microsoft. Zum
Programmieren von Windowsanwendungen.
22 DIR-II fängt Devicetreiberaufrufe ab und infiziert dabei
geeignete Wirte.
23 Sozusagen als Bestätigung kam eine Woche, nachdem ich diesen
Abschnitt geschrieben habe, der erste residente Virus
(Winsurfer) für Windows von der Gruppe "VLAD" heraus. Er
soll auch unter Windows-95 funktionieren!
Beschreibung aller Virenarten und Virengattungen Seite: 39
4.2 Internationale Vernetzung
Seit der Zugang zu Netzen wie FIDO oder Internet relativ einfach
ist, wird dieses Medium von den Virenprogrammiern benutzt. So
wird auf IRC24 im Kanal #virus offen Quellcodes von Viren und
lauffähige Viren verteilt. Es existieren eine Vielzahl von BBS
Mailboxen und ftp-sites, in denen man anonym Viren, Quellcode,
Mutation Engines und Virenkits herunter- oder hochladen kann.
Hier stellt kein Sysop oder Sysadmin lästige Fragen, weshalb
hier auch viele illegale Transaktionen stattfinden!
Ein weiterer Trend ist das Fluten von Nachrichtenbereichen (news
groups) mit Viren und Quellcodes, wie etwa die
Nachrichtenbereiche "FIDO: Virus.Germany" oder "alt.comp.virus".
Diese Nachrichtenbereiche beschäftigen sich hauptsächlich mit
der Bekämpfung von Viren! Die Moderatoren sind meistens absolut
hilflos, dieses Fluten zu unterbinden, weil die Mails meistens
von sog. "Fake-Accounts"25, anonymen Accounts oder gehackten
Accounts versendet werden!
So wurden alleine im April 1995 mehr als 3200 verschiedene
Computerviren in dem Forum "alt.comp.virus" veröffentlicht, eine
wahre Fundgrube für jeden Hacker und angehenden
Virenprogrammierer! Das sich so neue Viren innerhalb von nur
einer Woche weltweit verbreiten können, dürfte mit diesem
Hintergrundwissen jetzt einleutender sein.
─══[ 5 LITERATURVERZEICHNIS ]══════════════════════════════════─
Folgende Literatur wurde in dieser Arbeit verwendet:
Abkürzun Autor, Titel, Beschreibung und Verlag
g
[Bont94] Bontchev, Vesselin "Known Polymorphic Viruses",
1994
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/plymrphs.zip
[Bont94b Bontchev, Vesselin "Are _Good_ Computer Viruses
] Still A Bad Idea?", 02.11.94
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/goodvir.zip
[Bontch] Bontchev, Vesselin; "Future Trends in Virus
Writing".
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/trends.zip
[Brow44] Brown, Ralf; Interrupt List, Revision 44
Site: FTP.CS.CMU.EDU [128.2.206.173]
Dateien: /afs/cs.cmu.edu/user/ralf/pub/inter??a.
zip bis inter??d.zip
____________________
24 Internet Relay Chat - Foren, in denen man sich Online
unterhalten kann.
25 z. B. vom Benutzer "dunno" oder "slash" vom Rechner
"i.dont.know"
Beschreibung aller Virenarten und Virengattungen Seite: 40
[Dier90] Dierstein, Rüdiger. Kommentar: Amerika und die
europäischen IT-Sicherheitskriterien. Nr. 6
1990, S. 405-407
[Esch93] Virus Ratgeber Version 2.0; Reiner Eschen; 11.
Juli 1993
BBS: Reign in Blood, 30455 Hannover, FIDO:
2:241/23, Magic: VIRRAT, Telefon: 0511/493521
[FAQG93] VIRUSGER.FAQ - FAQ der FidoNet-Area VIRUS.GER,
Malte Eppert, Version 1.2, 03.03.1993
[FAQL92] VIRUS-L.FAQ - Frequently Asked Questions on
VIRUS-L/comp.virus, Last Updated: 18 November
1992, 7:45 AM EST, Anonymus FTP on cert.org
(192.88.209.5) in the file: pub/virus-
l/FAQ.virus-l
[FBul216 F-PROT Professional Update Bulletin 2.16 -
] Information on the global computer virus
situation. ASCII version. 1995
ftp.datafellows.fi:/pub/f-prot/bull-216.zip
[Ferb92] Ferbach, D. "A Pathology of Computer Viruses",
312 pp. pb. ca. DM 74,-- Springer Verlag London
Limited 1992
[Jour86] Jourdain, Robert L. "Programmer_s problem solver
for the IBM PC, XT and AT"; Prentice Hall Press,
1986
[Keph94] Kephart, Jeffrey O. "A Biologically Inspired
Immune System for Computers"; 1994
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/immune.zip
[LANl95] Zeitschrift "LANline - Das Magazin für Netze und
Kommunikation", AWI LANline Verlagsgesellschaft
mbH, Ausgabe 3/95, S. 20 ff.
[Micr94] Microsoft, "Systemhandbuch Microsoft Win NT
Workstation - Version 3.5", 1994
[Morr88] "Die großen Systeme reizten Robert". Der
Spiegel, Nr. 47 1988, S. 252-265. Anmerkung: Der
"Internet-Worm"
[Nort92] Norton, Peter: Windows 3 - Programmiertechniken
für Profis - "Hungarian Naming nach Charles
Simonyi", S. 56, Markt & Technik, 1992.
[PB92] Polk, W. T. & Bassham, L. E.; "A Guide to the
Selection of Anti-Virus Tools and Techniques",
National Institute of Standards and Technology -
Computer Security Division, 2. Dec. 1992
[Rada93] Radai, Yisrael "The Anti-Viral Software of MS-
DOS 6", 9. Sept. 1993
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/msaveval.zip
Beschreibung aller Virenarten und Virengattungen Seite: 41
[Slad95] Slade, Robert M.; "VirEthics", 20.03.1995
ftp.informatik.uni-ham-
burg.de:/pub/virus/texts/viruses/virethics.zip
[Smad94] Smadja, Birgit "Novell Netware: Einführung,
Arbeitsbuch, Nachschlagewerk", Markt und
Technik, Haar bei München, ISBN 3-87791-487-X;
1994
[Treb92] Treber, C. "Systemprogramme gegen
Computerviren", 1992, Hanser-Verlag
/* ENDE */
Beschreibung aller Virenarten und Virengattungen Seite: 42